xref: /csrg-svn/share/man/man4/man4.vax/ec.4 (revision 47674)
1*47674Scael.\" Copyright (c) 1983, 1991 The Regents of the University of California.
236756Sbostic.\" All rights reserved.
320714Smckusick.\"
443582Strent.\" %sccs.include.redist.man%
520714Smckusick.\"
6*47674Scael.\"     @(#)ec.4	6.7 (Berkeley) 03/27/91
736756Sbostic.\"
8*47674Scael.Dd
9*47674Scael.Dt EC 4 vax
10*47674Scael.Os BSD 4.2
11*47674Scael.Sh NAME
12*47674Scael.Nm ec
13*47674Scael.Nd 3Com 10 Mb/s Ethernet interface
14*47674Scael.Sh SYNOPSIS
15*47674Scael.Cd "device ec0 at uba0 csr 161000 vector ecrint eccollide ecxint flags 0"
16*47674Scael.Sh DESCRIPTION
1720714SmckusickThe
18*47674Scael.Nm ec
1920714Smckusickinterface provides access to a 10 Mb/s Ethernet network through
2020714Smckusicka 3com controller.
21*47674Scael.Pp
22*47674ScaelThe hardware has 32 kilobytes of dual-ported memory on the
23*47674Scael.Tn UNIBUS .
2420714SmckusickThis memory
2520714Smckusickis used for internal buffering by the board, and the interface code reads
26*47674Scaelthe buffer contents directly through the
27*47674Scael.Tn UNIBUS .
28*47674ScaelThe address of this memory is given in the
29*47674Scael.Ar flags
30*47674Scaelfield
3126226Skarelsin the configuration file.
3226226SkarelsThe first interface normally has its memory at Unibus address 0.
33*47674Scael.Pp
3428258SkarelsEach of the host's network addresses
35*47674Scaelis specified at boot time with an
36*47674Scael.Dv SIOCSIFADDR
37*47674Scael.Xr ioctl 2 .
38*47674ScaelThe
39*47674Scael.Nm ec
4020714Smckusickinterface employs the address resolution protocol described in
41*47674Scael.Xr arp 4
4220714Smckusickto dynamically map between Internet and Ethernet addresses on the local
4320714Smckusicknetwork.
44*47674Scael.Pp
45*47674ScaelThe interface normally tries to use a
46*47674Scael.Dq trailer
47*47674Scaelencapsulation
4828258Skarelsto minimize copying data on input and output.
49*47674ScaelThe use of trailers is negotiated with
50*47674Scael.Tn ARP .
5128258SkarelsThis negotiation may be disabled, on a per-interface basis,
52*47674Scaelby setting the
53*47674Scael.Dv IFF_NOTRAILERS
54*47674Scaelflag with an
55*47674Scael.Dv SIOCSIFFLAGS
56*47674Scael.Xr ioctl .
57*47674Scael.Pp
5820714SmckusickThe interface software implements an exponential backoff algorithm
5920714Smckusickwhen notified of a collision on the cable.  This algorithm utilizes
60*47674Scaela 16-bit mask and the
61*47674Scael.Tn VAX-11 Ns 's
62*47674Scaelinterval timer in calculating a series
6320714Smckusickof random backoff values.  The algorithm is as follows:
64*47674Scael.Bl -enum -offset indent
65*47674Scael.It
6620714SmckusickInitialize the mask to be all 1's.
67*47674Scael.It
6820714SmckusickIf the mask is zero, 16 retries have been made and we give
6920714Smckusickup.
70*47674Scael.It
7120714SmckusickShift the mask left one bit and formulate a backoff by
7226225Skarelsmasking the interval timer with the smaller of the complement of this mask
7326225Skarelsand a 5-bit mask, resulting in a pseudo-random number between 0 and 31.
7426225SkarelsThis produces the number of slot times to delay,
7526225Skarelswhere a slot is 51 microseconds.
76*47674Scael.It
7720714SmckusickUse the value calculated in step 3 to delay before retransmitting
7826225Skarelsthe packet.
7926225SkarelsThe delay is done in a software busy loop.
80*47674Scael.El
81*47674Scael.Sh DIAGNOSTICS
82*47674Scael.Bl -diag
83*47674Scael.It ec%d: send error.
8420714SmckusickAfter 16 retransmissions using the
8520714Smckusickexponential backoff algorithm described above, the packet
8620714Smckusickwas dropped.
87*47674Scael.Pp
88*47674Scael.It ec%d: input error (offset=%d).
8920714SmckusickThe hardware indicated an error
9020714Smckusickin reading a packet off the cable or an illegally sized packet.
9120714SmckusickThe buffer offset value is printed for debugging purposes.
92*47674Scael.Pp
93*47674Scael.It ec%d: can't handle af%d.
9420714SmckusickThe interface was handed
9520714Smckusicka message with addresses formatted in an unsuitable address
9620714Smckusickfamily; the packet was dropped.
97*47674Scael.El
98*47674Scael.Sh SEE ALSO
99*47674Scael.Xr netintro 4 ,
100*47674Scael.Xr inet 4 ,
101*47674Scael.Xr arp 4
102*47674Scael.Sh HISTORY
103*47674ScaelThe
104*47674Scael.Nm
105*47674Scaeldriver appeared in
106*47674Scael.Bx 4.2 .
107*47674Scael.Sh BUGS
10820714SmckusickThe hardware is not capable of talking to itself.  The software
10920714Smckusickimplements local sending and broadcast by sending such packets to the
11020714Smckusickloop interface.  This is a kludge.
111*47674Scael.Pp
11220714SmckusickBackoff delays are done in a software busy loop.  This can degrade the
11320714Smckusicksystem if the network experiences frequent collisions.
114