xref: /csrg-svn/share/man/man4/man4.vax/en.4 (revision 61597)
1*61597Sbostic.\" Copyright (c) 1983, 1991, 1993
2*61597Sbostic.\"	The Regents of the University of California.  All rights reserved.
320716Smckusick.\"
443582Strent.\" %sccs.include.redist.man%
520716Smckusick.\"
6*61597Sbostic.\"     @(#)en.4	8.1 (Berkeley) 06/05/93
736756Sbostic.\"
847674Scael.Dd
947674Scael.Dt EN 4 vax
1047674Scael.Os BSD 4.2
1147674Scael.Sh NAME
1247674Scael.Nm en
1347674Scael.Nd Xerox 3 Mb/s Ethernet interface
1447674Scael.Sh SYNOPSIS
1547674Scael.Cd "device en0 at uba0 csr 161000 vector enrint enxint encollide"
1647674Scael.Sh DESCRIPTION
1720716SmckusickThe
1847674Scael.Nm en
1920716Smckusickinterface provides access to a 3 Mb/s Ethernet network.
2047674ScaelDue to limitations in the hardware,
2147674Scael.Tn DMA
2247674Scaeltransfers
2320716Smckusickto and from the network must take place in the lower 64K bytes
2447674Scaelof the
2547674Scael.Tn UNIBUS
2647674Scaeladdress space, and thus this must be among the first
2747674Scael.Tn UNIBUS
2847674Scaeldevices enabled after boot.
2947674Scael.Pp
3028251SkarelsEach of the host's network addresses
3147674Scaelis specified at boot time with an
3247674Scael.Dv SIOCSIFADDR
3347674Scael.Xr ioctl 2 .
3447674ScaelThe station address is discovered by probing the on-board Ethernet
3528251Skarelsaddress register, and is used to verify the protocol addresses.
3628251SkarelsNo packets will be sent or accepted until
3728251Skarelsa network address is supplied.
3847674Scael.Pp
3920716SmckusickThe interface software implements an exponential backoff algorithm
4020716Smckusickwhen notified of a collision on the cable.  This algorithm utilizes
4147674Scaela 16-bit mask and the
4247674Scael.Tn VAX-11 Ns 's
4347674Scaelinterval timer in calculating a series
4420716Smckusickof random backoff values.  The algorithm is as follows:
4547674Scael.Pp
4647674Scael.Bl -enum -offset indent
4747674Scael.It
4820716SmckusickInitialize the mask to be all 1's.
4947674Scael.It
5020716SmckusickIf the mask is zero, 16 retries have been made and we give
5120716Smckusickup.
5247674Scael.It
5320716SmckusickShift the mask left one bit and formulate a backoff by
5420716Smckusickmasking the interval timer with the mask (this is actually
5520716Smckusickthe two's complement of the value).
5647674Scael.It
5720716SmckusickUse the value calculated in step 3 to delay before retransmitting
5820716Smckusickthe packet.
5947674Scael.El
6047674Scael.Pp
6147674ScaelThe interface handles both Internet and
6247674Scael.Tn NS
6347674Scaelprotocol families.
6447674ScaelIt normally tries to use a
6547674Scael.Dq trailer
6647674Scaelencapsulation
6728251Skarelsto minimize copying data on input and output.
6847674ScaelThe use of trailers is negotiated with
6947674Scael.Tn ARP .
7028251SkarelsThis negotiation may be disabled, on a per-interface basis,
7147674Scaelby setting the
7247674Scael.Dv IFF_NOTRAILERS
7347674Scaelflag with an
7447674Scael.Dv SIOCSIFFLAGS
7547674Scael.Xr ioctl .
7647674Scael.Sh DIAGNOSTICS
7747674Scael.Bl -diag
7847674Scael.It en%d: output error.
7920716SmckusickThe hardware indicated an error on
8020716Smckusickthe previous transmission.
8147674Scael.Pp
8247674Scael.It en%d: send error.
8320716SmckusickAfter 16 retransmissions using the
8420716Smckusickexponential backoff algorithm described above, the packet
8520716Smckusickwas dropped.
8647674Scael.Pp
8747674Scael.It en%d: input error.
8820716SmckusickThe hardware indicated an error
8920716Smckusickin reading a packet off the cable.
9047674Scael.Pp
9147674Scael.It en%d: can't handle af%d.
9220716SmckusickThe interface was handed
9320716Smckusicka message with addresses formatted in an unsuitable address
9420716Smckusickfamily; the packet was dropped.
9547674Scael.El
9647674Scael.Sh SEE ALSO
9747674Scael.Xr netintro 4 ,
9847674Scael.Xr inet 4
9947674Scael.Sh HISTORY
10047674ScaelThe
10147674Scael.Nm
10247674Scaeldriver appeared in
10347674Scael.Bx 4.2 .
10447674Scael.Sh BUGS
10520716SmckusickThe device has insufficient buffering to handle back to
10620716Smckusickback packets.  This makes use in a production environment
10720716Smckusickpainful.
10847674Scael.Pp
10947674ScaelThe hardware does word at a time
11047674Scael.Tn DMA
11147674Scaelwithout byte swapping.
11220716SmckusickTo compensate, byte swapping of user data must either be done
11320716Smckusickby the user or by the system.  A kludge to byte swap only
11447674Scael.Tn IP
11547674Scaelpackets is provided if the
11647674Scael.Dv ENF_SWABIPS
11747674Scaelflag is defined in
11847674Scaelthe driver and set at boot time with an
11947674Scael.Dv SIOCSIFFLAGS
12047674Scael.Xr ioctl .
121