Commit | Line | Data |
---|---|---|
5c22c951 KM |
1 | .\" Copyright (c) 1983 Regents of the University of California. |
2 | .\" All rights reserved. The Berkeley software License Agreement | |
3 | .\" specifies the terms and conditions for redistribution. | |
4 | .\" | |
15e8e6d2 | 5 | .\" @(#)ec.4 6.4 (Berkeley) %G% |
5c22c951 | 6 | .\" |
83d4fb6d | 7 | .TH EC 4 "" |
5c22c951 KM |
8 | .UC 5 |
9 | .SH NAME | |
10 | ec \- 3Com 10 Mb/s Ethernet interface | |
11 | .SH SYNOPSIS | |
b38f7b2b | 12 | .B "device ec0 at uba0 csr 161000 vector ecrint eccollide ecxint flags 0" |
5c22c951 KM |
13 | .SH DESCRIPTION |
14 | The | |
15 | .I ec | |
16 | interface provides access to a 10 Mb/s Ethernet network through | |
17 | a 3com controller. | |
18 | .PP | |
19 | The hardware has 32 kilobytes of dual-ported memory on the UNIBUS. | |
20 | This memory | |
21 | is used for internal buffering by the board, and the interface code reads | |
22 | the buffer contents directly through the UNIBUS. | |
b38f7b2b MK |
23 | The address of this memory is given in the \fIflags\fP field |
24 | in the configuration file. | |
25 | The first interface normally has its memory at Unibus address 0. | |
5c22c951 | 26 | .PP |
15e8e6d2 MK |
27 | Each of the host's network addresses |
28 | is specified at boot time with an SIOCSIFADDR | |
5c22c951 KM |
29 | ioctl. The |
30 | .I ec | |
31 | interface employs the address resolution protocol described in | |
32 | .IR arp (4P) | |
33 | to dynamically map between Internet and Ethernet addresses on the local | |
34 | network. | |
35 | .PP | |
15e8e6d2 MK |
36 | The interface normally tries to use a ``trailer'' encapsulation |
37 | to minimize copying data on input and output. | |
38 | The use of trailers is negotiated with ARP. | |
39 | This negotiation may be disabled, on a per-interface basis, | |
40 | by setting the IFF_NOTRAILERS | |
41 | flag with an SIOCSIFFLAGS ioctl. | |
42 | .PP | |
5c22c951 KM |
43 | The interface software implements an exponential backoff algorithm |
44 | when notified of a collision on the cable. This algorithm utilizes | |
45 | a 16-bit mask and the VAX-11's interval timer in calculating a series | |
46 | of random backoff values. The algorithm is as follows: | |
47 | .TP 5 | |
48 | 1. | |
49 | Initialize the mask to be all 1's. | |
50 | .TP 5 | |
51 | 2. | |
52 | If the mask is zero, 16 retries have been made and we give | |
53 | up. | |
54 | .TP 5 | |
55 | 3. | |
56 | Shift the mask left one bit and formulate a backoff by | |
03f6238e MK |
57 | masking the interval timer with the smaller of the complement of this mask |
58 | and a 5-bit mask, resulting in a pseudo-random number between 0 and 31. | |
59 | This produces the number of slot times to delay, | |
60 | where a slot is 51 microseconds. | |
5c22c951 KM |
61 | .TP 5 |
62 | 4. | |
63 | Use the value calculated in step 3 to delay before retransmitting | |
03f6238e MK |
64 | the packet. |
65 | The delay is done in a software busy loop. | |
5c22c951 KM |
66 | .SH DIAGNOSTICS |
67 | .BR "ec%d: send error" . | |
68 | After 16 retransmissions using the | |
69 | exponential backoff algorithm described above, the packet | |
70 | was dropped. | |
71 | .PP | |
72 | .BR "ec%d: input error (offset=%d)" . | |
73 | The hardware indicated an error | |
74 | in reading a packet off the cable or an illegally sized packet. | |
75 | The buffer offset value is printed for debugging purposes. | |
76 | .PP | |
77 | .BR "ec%d: can't handle af%d" . | |
78 | The interface was handed | |
79 | a message with addresses formatted in an unsuitable address | |
80 | family; the packet was dropped. | |
81 | .SH SEE ALSO | |
82 | intro(4N), inet(4F), arp(4P) | |
83 | .SH BUGS | |
5c22c951 KM |
84 | The hardware is not capable of talking to itself. The software |
85 | implements local sending and broadcast by sending such packets to the | |
86 | loop interface. This is a kludge. | |
87 | .PP | |
88 | Backoff delays are done in a software busy loop. This can degrade the | |
89 | system if the network experiences frequent collisions. |