1hme(7D)                             Devices                            hme(7D)
2
3
4

NAME

6       hme - SUNW,hme Fast-Ethernet device driver
7

SYNOPSIS

9       /dev/hme
10
11

DESCRIPTION

13       The  SUNW,hme Fast-Ethernet driver is a multi-threaded, loadable, clon‐
14       able, STREAMS hardware driver supporting the connectionless  Data  Link
15       Provider  Interface,  dlpi(7P),  over  a   SUNW,hme  Fast-Ethernet con‐
16       troller. The motherboard and add-in SBus SUNW,hme controllers  of  sev‐
17       eral  varieties  are supported. Multiple SUNW,hme controllers installed
18       within the system are supported by the driver.
19
20
21       The hme driver provides basic support for the SUNW,hme hardware. It  is
22       used to handle the  SUNW,hme device. Functions include chip initializa‐
23       tion, frame transit and receive, multicast and promiscuous support, and
24       error  recovery  and  reporting.  SUNW,hme The SUNW,hme device provides
25       100Base-TX networking interfaces using SUN's FEPS ASIC and an  Internal
26       Transceiver.  The  FEPS  ASIC provides the Sbus interface and MAC func‐
27       tions and the Physical layer functions are  provided  by  the  Internal
28       Transceiver  which  connects  to  a RJ-45 connector. In addition to the
29       RJ-45 connector, an  MII (Media  Independent  Interface)  connector  is
30       also  provided  on  all   SUNW,hme  devices  except  the  SunSwith SBus
31       adapter board. The MII interface is used  to  connect  to  an  External
32       Transceiver  which  may use any physical media (copper or fiber) speci‐
33       fied in the 100Base-TX standard. When an External Transceiver  is  con‐
34       nected to the MII, the driver selects the External Transceiver and dis‐
35       ables the Internal Transceiver.
36
37
38       The 100Base-TX standard specifies  an  "auto-negotiation"  protocol  to
39       automatically  select  the  mode  and  speed of operation. The Internal
40       transceiver is capable of doing "auto-negotiation" with the  remote-end
41       of the link (Link Partner) and receives the capabilities  of the remote
42       end. It selects the  Highest Common Denominator mode of operation based
43       on the priorities. It also supports  forced-mode of operation where the
44       driver can select the mode of operation.
45

APPLICATION PROGRAMMING INTERFACE

47       The cloning character-special device  /dev/hme is used  to  access  all
48       SUNW,hme controllers installed within the system.
49
50   hme and DLPI
51       The   hme driver is a "style 2" Data Link Service provider. All M_PROTO
52       and M_PCPROTO type messages are interpreted as DLPI  primitives.  Valid
53       DLPI primitives are defined in <sys/dlpi.h>. Refer to dlpi(7P) for more
54       information. An explicit DL_ATTACH_REQ message by the user is  required
55       to  associate the opened stream with a particular device (ppa). The ppa
56       ID is interpreted as an unsigned long data type and indicates the  cor‐
57       responding  device  instance  (unit) number. An error (DL_ERROR_ACK) is
58       returned by the driver if the ppa field value does not correspond to  a
59       valid device instance number for this system. The device is initialized
60       on first attach and de-initialized (stopped) at last detach.
61
62
63       The values returned by the  driver  in  the  DL_INFO_ACK  primitive  in
64       response to the DL_INFO_REQ from the user are as follows:
65
66           o      The  maximum SDU is 1500 (ETHERMTU - defined in  <sys/ether‐
67                  net.h> ).
68
69           o      The minimum SDU is 0.
70
71           o      The dlsap address length is 8.
72
73           o      The MAC type is DL_ETHER.
74
75           o      The sap length values is −2  meaning  the  physical  address
76                  component is followed immediately  by a 2 byte sap component
77                  within the DLSAP address.
78
79           o      The service mode is DL_CLDLS.
80
81           o      No optional quality of service (QOS) support is included  at
82                  present so the  QOS fields are 0.
83
84           o      The provider style is DL_STYLE2.
85
86           o      The version is DL_VERSION_2.
87
88           o      The  broadcast  address  value  is  Ethernet/IEEE  broadcast
89                  address (0xFFFFFF).
90
91
92       Once in the DL_ATTACHED state, the user must send a DL_BIND_REQ to  as‐
93       sociate  a particular SAP (Service Access Pointer) with the stream. The
94       hme driver interprets the sap field within the DL_BIND_REQ as an Ether‐
95       net  "type"  therefore  valid  values  for  the  sap  field  are in the
96       [0-0xFFFF] range.  Only one Ethernet type can be bound to the stream at
97       any time.
98
99
100       If  the  user  selects a sap with a value of 0, the receiver will be in
101       "802.3 mode". All frames received from the media having a "type"  field
102       in  the range [0-1500] are assumed to be 802.3 frames and are routed up
103       all open Streams which are bound to sap  value  0.  If  more  than  one
104       Stream  is in "802.3 mode" then the frame will be duplicated and routed
105       up multiple Streams as DL_UNITDATA_IND messages.
106
107
108       In transmission, the driver checks the sap field of the DL_BIND_REQ  if
109       the  sap  value is 0, and if the destination type field is in the range
110       [0-1500]. If either is true, the driver computes the length of the mes‐
111       sage, not including initial M_PROTO mblk (message block), of all subse‐
112       quent DL_UNITDATA_REQ messages and transmits  802.3  frames  that  have
113       this value in the MAC frame header length field.
114
115
116       The  hme  driver  DLSAP  address format consists of the 6 byte physical
117       (Ethernet) address component followed immediately by  the  2  byte  sap
118       (type) component producing an 8 byte DLSAP address. Applications should
119       not hardcode to this particular implementation-specific  DLSAP  address
120       format  but  use  information  returned in the DL_INFO_ACK primitive to
121       compose and decompose DLSAP  addresses.  The  sap  length,  full  DLSAP
122       length,  and sap/physical ordering are included within the DL_INFO_ACK.
123       The physical address length can be  computed  by  subtracting  the  sap
124       length   from   the  full  DLSAP  address  length  or  by  issuing  the
125       DL_PHYS_ADDR_REQ to obtain the current physical address associated with
126       the stream.
127
128
129       Once  in the DL_BOUND state, the user may transmit frames on the Ether‐
130       net by sending DL_UNITDATA_REQ messages to  the  hme  driver.  The  hme
131       driver  will route received Ethernet frames up all those open and bound
132       streams having a sap which matches the Ethernet type as DL_UNITDATA_IND
133       messages.  Received Ethernet frames are duplicated and routed up multi‐
134       ple open streams if necessary. The DLSAP address contained  within  the
135       DL_UNITDATA_REQ  and  DL_UNITDATA_IND messages consists of both the sap
136       (type) and physical (Ethernet) components.
137
138
139       In addition to the mandatory connectionless DLPI message set the driver
140       additionally supports the following primitives.
141
142   hme Primitives
143       The  DL_ENABMULTI_REQ  and  DL_DISABMULTI_REQ primitives enable/disable
144       reception of individual multicast group addresses. A set  of  multicast
145       addresses may be iteratively created and modified on a per-stream basis
146       using these primitives. These primitives are accepted by the driver  in
147       any state following DL_ATTACHED.
148
149
150       The   DL_PROMISCON_REQ   and   DL_PROMISCOFF_REQ  primitives  with  the
151       DL_PROMISC_PHYS flag set in the dl_level field enables/disables  recep‐
152       tion  of  all ("promiscuous mode") frames on the media including frames
153       generated by the local host. When used with the DL_PROMISC_SAP flag set
154       this enables/disables reception of all sap (Ethernet type) values. When
155       used with the DL_PROMISC_MULTI flag set this enables/disables reception
156       of  all  multicast  group  addresses. The effect of each is always on a
157       per-stream basis and independent of the other sap  and  physical  level
158       configurations on this stream or other streams.
159
160
161       The  DL_PHYS_ADDR_REQ  primitive  returns  the 6 octet Ethernet address
162       currently associated (attached) to the stream in  the  DL_PHYS_ADDR_ACK
163       primitive.  This primitive is valid only in states following a success‐
164       ful DL_ATTACH_REQ.
165
166
167       The DL_SET_PHYS_ADDR_REQ primitive changes the 6 octet Ethernet address
168       currently  associated (attached) to this stream. The credentials of the
169       process which originally opened this stream must be superuser.   Other‐
170       wise  EPERM is returned in the DL_ERROR_ACK. This primitive is destruc‐
171       tive in that it affects all other current and future  streams  attached
172       to  this  device.  An  M_ERROR is sent up all other streams attached to
173       this device when this primitive is successful  on  this  stream.   Once
174       changed,  all  streams  subsequently opened and attached to this device
175       will obtain this new physical  address.   Once  changed,  the  physical
176       address will remain until this primitive is used to change the physical
177       address again or the system is rebooted, whichever comes first.
178
179   hme DRIVER
180       By default, the hme driver performs "auto-negotiation" to   select  the
181       mode and  speed of the link, when the Internal Transceiver is used.
182
183
184       When  an  External  Transceiver  is connected to the MII interface, the
185       driver selects the External Transceiver for  networking operations.  If
186       the  External  Transceiver supports "auto-negotiation", the driver uses
187       the auto-negotiation procedure to select the link speed  and  mode.  If
188       the  External  Transceiver  does  not support auto-negotiation, it will
189       select the highest priority mode supported by the transceiver.
190
191           o      100 Mbps, full-duplex
192
193           o      100 Mbps, half-duplex
194
195           o      10 Mbps, full-duplex
196
197           o      10 Mbps, half-duplex
198
199
200       The link can be in one of the  4 following modes:
201
202
203       These speeds and modes are described in the 100Base-TX standard.
204
205
206       The auto−negotiation protocol automatically selects:
207
208           o      Operation mode (half-duplex or full-duplex)
209
210           o      Speed (100 Mbps or 10 Mbps)
211
212
213       The auto−negotiation protocol does the following:
214
215           o      Gets all the modes of operation supported by the Link  Part‐
216                  ner
217
218           o      Advertises its capabilities to the Link Partner
219
220           o      Selects  the  highest  common  denominator mode of operation
221                  based on the  priorities
222
223
224       The internal transceiver is capable of all of the operating speeds  and
225       modes  listed above. When the internal transceiver is used, by default,
226       auto-negotiation is used to select the speed and the mode of  the  link
227       and the common mode of operation with the Link Partner.
228
229
230       When  an  external  transceiver is connected to the  MII interface, the
231       driver selects the external transceiver for networking  operations.  If
232       the external transceiver supports auto-negotiation:
233
234           o      The driver uses the auto-negotiation procedure to select the
235                  link speed and mode.
236
237
238       If the external transceiver  does not support auto-negotiation
239
240           o      The driver selects the highest priority  mode  supported  by
241                  the transceiver.
242
243
244       Sometimes, the user may want to select the speed and mode of  the link.
245       The SUNW,hme device  supports  programmable  "IPG"  (Inter-Packet  Gap)
246       parameters ipg1 and  ipg2. By default, the driver sets ipg1 to 8  byte-
247       times and ipg2 to 4 byte-times (which are the standard  values).  Some‐
248       times, the user may want to alter these values depending on whether the
249       driver supports 10 Mbps or 100 Mpbs and accordingly, IPG will be set to
250       9.6 or 0.96 microseconds.
251
252   hme Parameter List
253       The  hme driver provides for setting and getting various parameters for
254       the  SUNW,hme device. The parameter list includes:
255         current transceiver status
256         current link status
257         inter-packet gap
258         local transceiver capabilities
259         link partner capabilities
260
261
262       The local transceiver has two set of capabilities: one set reflects the
263       capabilities  of the hardware, which are  read-only (RO) parameters and
264       the second set reflects the values chosen by the user and  is  used  in
265       speed  selection. There are read/write (RW) capabilities. At boot time,
266       these two sets of capabilities will be the same. The Link Partner capa‐
267       bilities  are  also  read  only  parameters because the current default
268       value of these parameters can only be read and cannot be modified.
269

FILES

271       /dev/hme                hme special character device
272
273
274       /kernel/drv/hme.conf    System-wide default device driver properties
275
276

SEE ALSO

278       ndd(1M), netstat(1M), driver.conf(4), dlpi(7P)
279
280
281
282SunOS 5.11                        5 Sep 1995                           hme(7D)
Impressum