1.\" $NetBSD: ec.4,v 1.9 2002/01/15 02:06:31 wiz Exp $ 2.\" 3.\" Copyright (c) 1983, 1991, 1993 4.\" The Regents of the University of California. All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer. 11.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 3. All advertising materials mentioning features or use of this software 15.\" must display the following acknowledgement: 16.\" This product includes software developed by the University of 17.\" California, Berkeley and its contributors. 18.\" 4. Neither the name of the University nor the names of its contributors 19.\" may be used to endorse or promote products derived from this software 20.\" without specific prior written permission. 21.\" 22.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32.\" SUCH DAMAGE. 33.\" 34.\" from: @(#)ec.4 8.1 (Berkeley) 6/5/93 35.\" 36.Dd June 5, 1993 37.Dt EC 4 vax 38.Os 39.Sh NAME 40.Nm ec 41.Nd 3Com 10 Mb/s Ethernet interface 42.Sh SYNOPSIS 43.Cd "ec0 at uba0 csr 161000 vector ecrint eccollide ecxint flags 0" 44.Sh DESCRIPTION 45NOTE: This driver has not been ported from 46.Bx 4.4 47yet. 48.Pp 49The 50.Nm ec 51interface provides access to a 10 Mb/s Ethernet network through 52a 3com controller. 53.Pp 54The hardware has 32 kilobytes of dual-ported memory on the 55.Tn UNIBUS . 56This memory 57is used for internal buffering by the board, and the interface code reads 58the buffer contents directly through the 59.Tn UNIBUS . 60The address of this memory is given in the 61.Ar flags 62field 63in the configuration file. 64The first interface normally has its memory at Unibus address 0. 65.Pp 66Each of the host's network addresses 67is specified at boot time with an 68.Dv SIOCSIFADDR 69.Xr ioctl 2 . 70The 71.Nm ec 72interface employs the address resolution protocol described in 73.Xr arp 4 74to dynamically map between Internet and Ethernet addresses on the local 75network. 76.Pp 77The interface normally tries to use a 78.Dq trailer 79encapsulation 80to minimize copying data on input and output. 81The use of trailers is negotiated with 82.Tn ARP . 83This negotiation may be disabled, on a per-interface basis, 84by setting the 85.Dv IFF_NOTRAILERS 86flag with an 87.Dv SIOCSIFFLAGS 88.Xr ioctl 2 . 89.Pp 90The interface software implements an exponential backoff algorithm 91when notified of a collision on the cable. This algorithm utilizes 92a 16-bit mask and the 93.Tn VAX-11 Ns 's 94interval timer in calculating a series 95of random backoff values. The algorithm is as follows: 96.Bl -enum -offset indent 97.It 98Initialize the mask to be all 1's. 99.It 100If the mask is zero, 16 retries have been made and we give 101up. 102.It 103Shift the mask left one bit and formulate a backoff by 104masking the interval timer with the smaller of the complement of this mask 105and a 5-bit mask, resulting in a pseudo-random number between 0 and 31. 106This produces the number of slot times to delay, 107where a slot is 51 microseconds. 108.It 109Use the value calculated in step 3 to delay before retransmitting 110the packet. 111The delay is done in a software busy loop. 112.El 113.Sh DIAGNOSTICS 114.Bl -diag 115.It ec%d: send error. 116After 16 retransmissions using the 117exponential backoff algorithm described above, the packet 118was dropped. 119.Pp 120.It ec%d: input error (offset=%d). 121The hardware indicated an error 122in reading a packet off the cable or an illegally sized packet. 123The buffer offset value is printed for debugging purposes. 124.Pp 125.It ec%d: can't handle af%d. 126The interface was handed 127a message with addresses formatted in an unsuitable address 128family; the packet was dropped. 129.El 130.Sh SEE ALSO 131.Xr arp 4 , 132.Xr inet 4 , 133.Xr netintro 4 134.Sh HISTORY 135The 136.Nm 137driver appeared in 138.Bx 4.2 . 139.Sh BUGS 140The hardware is not capable of talking to itself. The software 141implements local sending and broadcast by sending such packets to the 142loop interface. This is a kludge. 143.Pp 144Backoff delays are done in a software busy loop. This can degrade the 145system if the network experiences frequent collisions. 146