|
|
1.1 root 1: .\" Copyright (c) 1986 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)vaxif.t 1.7 (Berkeley) 4/11/86
6: .\"
7: .NH
8: VAX Network Interface drivers
9: .PP
10: Most of the changes in the network interfaces follow common patterns
11: that are summarized in categories.
12: In addition, there are a number of bug fixes.
13: The change that was made universally to the interface handlers
14: was to remove the \fIioctl\fP routines that set the interface address
15: and flags, replacing them by simpler routines
16: that merely initialize the hardware if this has not already been done.
17: Several of the drivers notice when the IFF_UP flag is cleared
18: and perform a hardware reset, then reinitialize the interface
19: when IFF_UP is set again.
20: This allows interfaces to be turned off, and also provides
21: a mechanism to reset devices that have lost interrupts
22: or otherwise stopped functioning.
23: The handling of the other interface flags has been made more consistent.
24: IFF_RUNNING is used uniformly to indicate that UNIBUS resources
25: have been allocated and that the board has been initialized.
26: The reset routines clear this flag before reinitializing
27: so that both operations will be repeated.
28: .NH 2
29: Interface UNIBUS support
30: .PP
31: The UNIBUS common support routines for network interfaces
32: have been modified to support multiple transmit and receive buffers
33: per device.
34: A set of macros provide a nearly-compatible interface
35: for devices using a single buffer of each type.
36: When placing received packets into mbufs, \fIif_ubaget\fP
37: prepends a pointer to the receiving interface to the data;
38: this requires that the interface pointer be passed to \fIif_ubaget\fP
39: or \fIif_rubaget\fP as an additional argument.
40: When removing the trailer header from the front of a packet,
41: interface receive routines must move the interface pointer
42: which precedes the header; see one of the existing drivers
43: for an example.
44: When received data is larger than half of an mbuf cluster,
45: the data will be placed in an mbuf cluster rather than a chain of small
46: mbufs.
47: Similarly, in \fIif_ubaput\fP, clusters may be remapped instead of copied
48: if they are at least one-half full and are the last mbuf of the chain.
49: For devices like the DEC DEUNA that wish to perform receive operations
50: on a transmit buffer, the transmit buffers are marked.
51: Receive operations from transmit buffers force page mapping to be consistent
52: before attempting to read data or swap pages from them.
53: .NH 2
54: 10 Mb/s Ethernet
55: .PP
56: The 10Mb/s Ethernet handlers have been modified to use the new ARP
57: interfaces.
58: They no longer use \fIarpattach\fP, and the call to \fIarpresolve\fP
59: contains an additional argument for a second return, a boolean for
60: the use of trailer encapsulations.
61: Input and output functions were augmented to handle NS IDP packets.
62: For hosts using Xerox NS with multiple interfaces,
63: the drivers are able to reprogram the physical address on each
64: board so that all interfaces use the address of the first
65: configured interface.
66: The hardware Ethernet addresses are printed during autoconfiguration.
67: .NH 2
68: Changes specific to individual drivers
69: .XP if_acc.c
70: An additional word was added to the input buffer
71: to allow space for the end-of-message bit on a maximum-sized
72: message without segmentation.
73: This avoids a hardware problem that sometimes causes the next packet
74: to be concatenated with the end-of-message segment.
75: .XP if_ddn.c
76: A new driver from ACC for the ACC DDN Standard mode X.25 IMP interface.
77: .XP if_de.c
78: A new driver for the DEC DEUNA 10 Mb/s Ethernet controller.
79: The hardware is reset when \fIifconfig\fPed down
80: and reinitialized when marked up again.
81: .XP if_dmc.c
82: The DMC-11/DMR-11 driver has been made much more robust.
83: It now uses multiple transmit and receive buffers.
84: A link-layer encapsulation is used to indicate the type of the packet;
85: this driver is thus incompatible with the 4.2BSD DMC driver.
86: (The driver is, however, compatible with current ULTRIX drivers.)
87: .XP if_ec.c
88: The handler for the 3Com 10 Mb/s Ethernet controller
89: is now able to support multiple units.
90: The address of the UNIBUS memory is taken from the flags in the configuration
91: file; note that address 0 is still the default.
92: The UNIBUS memory is configured in a separate memory-probe routine
93: that is called during autoconfiguration and after a UNIBUS reset.
94: This allows the 3Com interface reset to work correctly.
95: The collision backoff algorithm was corrected so that the maximum backoff
96: is within the specification, rather than waiting seconds after numerous
97: collisions.
98: The private \fIecget\fP and \fIecput\fP routines were modified
99: to correspond with the \fIif_uba\fP routines.
100: The hardware is reset when \fIifconfig\fPed down
101: and reinitialized when marked up again.
102: .XP if_en.c
103: The 3 Mb/s Experimental Ethernet driver now supports NS IDP packets,
104: using a simple algorithmic conversion of host to Ethernet addresses.
105: The \fIenswab\fP function was corrected.
106: .XP if_ex.c
107: A new driver for the Excelan 204 10 Mb/s Ethernet controller,
108: used as a link-layer interface.
109: .XP if_hdh.c
110: A new driver for the ACC HDH IMP interface.
111: .XP if_hy.c
112: A new version of the Hyperchannel driver from Tektronix was installed.
113: It is untested with 4.3BSD.
114: .XP if_il.c
115: The Interlan 1010 and 1010A driver now resets the interface
116: and checks the result of hardware diagnostics when initializing the board.
117: The hardware is reset when \fIifconfig\fPed down
118: and reinitialized when marked up again.
119: .XP if_ix.c
120: A new driver for using the Interlan NP100 10 Mb/s Ethernet controller
121: as a link-level interface.
122: .XP if_uba.c
123: In addition to the major changes in UNIBUS support functions,
124: there were several bug fixes made.
125: Interfaces with no link-level header are set up properly.
126: A variable was reused incorrectly in \fIif_wubaput\fP, and this
127: has been corrected.
128: .XP if_vv.c
129: The driver for the Proteon proNET has been reworked in several areas.
130: The elaborate error handling code had several problems and was simplified
131: considerably.
132: The driver includes support for both the 10 Mb/s and 80 Mb/s rings.
133: The byte ordering of the trailer fields was corrected;
134: this makes the trailer format incompatible with the 4.2BSD driver.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.