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