1eri(7D) Devices eri(7D)
2
3
4
6 eri - eri Fast-Ethernet device driver
7
9 /dev/eri
10
11
13 The eri Fast Ethernet driver is a multi-threaded, loadable, clonable,
14 STREAMS—based hardware driver supporting the connectionless Data Link
15 Provider Interface dlpi(7P) over an eri Fast-Ethernet controller. Mul‐
16 tiple eri devices installed within the system are supported by the
17 driver.
18
19
20 The eri driver provides basic support for the eri hardware and handles
21 the eri device. Functions include chip initialization, frame transit
22 and receive, multicast and promiscuous support, and error recovery and
23 reporting.
24
25
26 The eri device provides 100Base-TX networking interfaces using the SUN
27 RIO ASIC and an internal transceiver. The RIO ASIC provides the PCI
28 interface and MAC functions. The physical layer functions are provided
29 by the internal transceiver which connects to a RJ-45 connector.
30
31
32 The 100Base-TX standard specifies an auto-negotiation protocol to auto‐
33 matically select the mode and speed of operation. The internal trans‐
34 ceiver is capable of performing auto-negotiation using the remote-end
35 of the link (link partner) and receives the capabilities of the remote
36 end. It selects the highest common denominator mode of operation based
37 on the priorities. It also supports a forced-mode of operation under
38 which the driver selects the mode of operation.
39
41 The cloning character-special device /dev/eri is used to access all
42 eri controllers installed within the system.
43
44 eri and DLPI
45 The eri driver is a "style 2" Data Link Service provider. All M_PROTO
46 and M_PCPROTO type messages are interpreted as DLPI primitives. Valid
47 DLPI primitives are defined in <sys/dlpi.h>. Refer to dlpi(7P) for more
48 information.
49
50
51 An explicit DL_ATTACH_REQ message by the user is required to associate
52 the opened stream with a particular device (ppa). The ppa ID is inter‐
53 preted as an unsigned integer data type and indicates the corresponding
54 device instance (unit) number. An error (DL_ERROR_ACK) is returned by
55 the driver if the ppa field value does not correspond to a valid device
56 instance number for this system. The device is initialized on first
57 attach and de-initialized (stopped) at last detach.
58
59
60 The values returned by the driver in the DL_INFO_ACK primitive in
61 response to the DL_INFO_REQ from the user are as follows:
62
63 o The maximum SDU is 1500 (ETHERMTU - defined in <sys/ether‐
64 net.h> ).
65
66 o The minimum SDU is 0.
67
68 o The dlsap address length is 8.
69
70 o The MAC type is DL_ETHER.
71
72 o The sap length values is -2, meaning the physical address
73 component is followed immediately by a 2 byte sap component
74 within the DLSAP address.
75
76 o The service mode is DL_CLDLS.
77
78 o Optional quality of service (QOS) is not currently supported
79 so QOS fields are 0.
80
81 o The provider style is DL_STYLE.
82
83 o The version is DL_VERSION_2.
84
85 o The broadcast address value is Ethernet/IEEE broadcast
86 address (0xFFFFFF).
87
88
89 Once in the DL_ATTACHED state, the user must send a DL_BIND_REQ to as‐
90 sociate a particular SAP (Service Access Pointer) with the stream. The
91 eri driver interprets the sap field within the DL_BIND_REQ as an Ether‐
92 net "type," therefore valid values for the sap field are in the
93 [0-0xFFFF] range. Only one Ethernet type can be bound to the stream at
94 any time.
95
96
97 If the user selects a sap with a value of 0, the receiver will be in
98 IEEE 802.3 mode. All frames received from the media having a Ethernet
99 type field in the range [0-1500] are assumed to be 802.3 frames and are
100 routed up all open Streams which are bound to sap value 0. If more than
101 one Stream is in 802.3 mode, the frame will be duplicated and routed up
102 multiple Streams as DL_UNITDATA_IND messages.
103
104
105 In transmission, the driver checks the sap field of the DL_BIND_REQ to
106 determine if the value is 0 or if the Ethernet type field is in the
107 range [0-1500]. If either is true, the driver computes the length of
108 the message, not including initial M_PROTO mblk (message block), of all
109 subsequent DL_UNITDATA_REQ messages, and transmits 802.3 frames that
110 have this value in the MAC frame header length field.
111
112
113 The eri driver's DLSAP address format consists of the 6 byte physical
114 (Ethernet) address component followed immediately by the 2 byte sap
115 (type) component, producing an 8 byte DLSAP address. Applications
116 should not hardcode to this particular implementation-specific DLSAP
117 address format but use information returned in the DL_INFO_ACK primi‐
118 tive to compose and decompose DLSAP addresses. The sap length, full
119 DLSAP length, and sap/physical ordering are included within the
120 DL_INFO_ACK. The physical address length can be computed by subtracting
121 the sap length from the full DLSAP address length or by issuing the
122 DL_PHYS_ADDR_REQ to obtain the current physical address associated with
123 the stream.
124
125
126 Once in the DL_BOUND state, the user may transmit frames on the Ether‐
127 net by sending DL_UNITDATA_REQ messages to the eri driver. The eri
128 driver will route received Ethernet frames up all open and bound
129 streams having a sap which matches the Ethernet type as DL_UNITDATA_IND
130 messages. Received Ethernet frames are duplicated and routed up multi‐
131 ple open streams if necessary. The DLSAP address contained within the
132 DL_UNITDATA_REQ and DL_UNITDATA_IND messages consists of both the sap
133 (type) and physical (Ethernet) components.
134
135 eri Primitives
136 In addition to the mandatory connectionless DLPI message set, the
137 driver also supports the following primitives:
138
139
140 The DL_ENABMULTI_REQ and DL_DISABMULTI_REQ primitives enable/disable
141 reception of individual multicast group addresses. A set of multicast
142 addresses may be iteratively created and modified on a per-stream basis
143 using these primitives. These primitives are accepted by the driver in
144 any state following DL_ATTACHED.
145
146
147 The DL_PROMISCON_REQ and DL_PROMISCOFF_REQ primitives with the
148 DL_PROMISC_PHYS flag set in the dl_level field enables/disables recep‐
149 tion of all promiscuous mode frames on the media, including frames gen‐
150 erated by the local host. When used with the DL_PROMISC_SAP flag set,
151 this enables/disables reception of all sap (Ethernet type) values. When
152 used with the DL_PROMISC_MULTI flag set, this enables/disables recep‐
153 tion of all multicast group addresses. The effect of each is always on
154 a per-stream basis and independent of the other sap and physical level
155 configurations on this stream or other streams.
156
157
158 The DL_PHYS_ADDR_REQ primitive returns the 6 octet Ethernet address
159 currently associated (attached) to the stream in the DL_PHYS_ADDR_ACK
160 primitive. This primitive is valid only in states following a success‐
161 ful DL_ATTACH_REQ.
162
163
164 The DL_SET_PHYS_ADDR_REQ primitive changes the 6 octet Ethernet address
165 currently associated (attached) to this stream. The credentials of the
166 process which originally opened this stream must be superuser, or EPERM
167 is returned in the DL_ERROR_ACK. This primitive is destructive because
168 it affects all current and future streams attached to this device. An
169 M_ERROR is sent up all other streams attached to this device when this
170 primitive is successful on this stream. Once changed, all streams sub‐
171 sequently opened and attached to this device will obtain this new phys‐
172 ical address. Once changed, the physical address will remain until
173 this primitive is used to change the physical address again or the sys‐
174 tem is rebooted, whichever comes first.
175
176 eri DRIVER
177 By default, the eri driver performs auto-negotiation to select the
178 mode and speed of the link, which can be in one of the following
179 modes, as described in the 100Base-TX standard:
180
181 o 100 Mbps, full-duplex
182
183 o 100 Mbps, half-duplex
184
185 o 10 Mbps, full-duplex
186
187 o 10 Mbps, half-duplex
188
189
190 The auto-negotiation protocol automatically selects:
191
192 o Operation mode (half-duplex or full-duplex)
193
194 o Speed (100 Mbps or 10 Mbps)
195
196
197 The auto-negotiation protocol does the following:
198
199 o Gets all modes of operation supported by the link partner
200
201 o Advertises its capabilities to the Link Partner
202
203 o Selects the highest common denominator mode of operation
204 based on the priorities
205
206
207 The internal transceiver is capable of all of the operating speeds and
208 modes listed above. By default, auto-negotiation is used to select the
209 speed and the mode of the link and the common mode of operation with
210 the link partner.
211
212
213 For users who want to select the speed and mode of the link, the eri
214 device supports programmable IPG (Inter-Packet Gap) parameters ipg1 and
215 ipg2. Sometimes, the user may want to alter these values depending on
216 whether the driver supports 10 Mbps or 100 Mpbs and accordingly, IPG
217 will be set to 9.6 or 0.96 microseconds.
218
219 eri Parameter List
220 The eri driver provides for setting and getting various parameters for
221 the eri device. The parameter list includes current transceiver sta‐
222 tus, current link status, inter-packet gap, local transceiver capabili‐
223 ties and link partner capabilities.
224
225
226 The local transceiver has two set of capabilities: one set reflects
227 hardware capabilities, which are read-only (RO) parameters. The second
228 set reflects the values chosen by the user and is used in speed selec‐
229 tion and possess read/write (RW) capability. At boot time, these two
230 sets of capabilities will be the same. Because the current default
231 value of these parameters can only be read and not modified, the link
232 partner capabilities are also read only.
233
235 /dev/eri eri special character device.
236
237
238 /kernel/drv/eri.conf System wide default device driver proper‐
239 ties
240
241
242 /kernel/drv/sparcv9/eri 64 bit device driver
243
244
246 ndd(1M), netstat(1M), driver.conf(4), hme(7D), qfe(7d), dlpi(7P)
247
248
249
250SunOS 5.11 1 Mar 2000 eri(7D)