xref: /illumos-gate/usr/src/man/man7/ieee802.3.7 (revision bbf21555)
1.\" Copyright 2014 Garrett D'Amore <garrett@damore.org>
2.\" Copyright 2016 Joyent, Inc.
3.\" Redistribution and use in source and binary forms, with or without
4.\" modification, are permitted provided that the following conditions
5.\" are met:
6.\" 1. Redistributions of source code must retain the above copyright
7.\"    notice, this list of conditions and the following disclaimer.
8.\" 2. Redistributions in binary form must reproduce the above copyright
9.\"    notice, this list of conditions and the following disclaimer in the
10.\"    documentation and/or other materials provided with the distribution.
11.\"
12.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS
13.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
14.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
15.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
16.\" COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
17.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
19.\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20.\" ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
23.\"
24.Dd "Nov 23, 2016"
25.Dt IEEE802.3 7
26.Os
27.Sh NAME
28.Nm ieee802.3
29.Nd IEEE 802.3 Ethernet parameters and statistics
30.Sh DESCRIPTION
31The IEEE 802.3 standard specifies the details for Ethernet
32networking.
33This page describes the various statistics and tunables that device drivers
34supporting Ethernet commonly offer.
35.
36Note that not every device or driver supports every one of these
37values, and many devices offer additional statistics and tunables that
38are specific to that hardware.
39See the device driver's documentation for those specific details.
40.
41.Lp
42Values that are statistics are visible
43.Xr kstat 8 ,
44whereas properties are visible using the
45.Xr dladm 8
46.Sy show-linkprop
47subcommand.
48Tunables are properties that can be changed using the
49.Xr dladm 8
50.Sy set-linkprop
51subcommand.
52A more useful summary of current operational state can be seen with the
53.Xr dladm 8
54.Sy show-ether
55subcommand.
56.
57.Ss Statistics
58The following statistics are accessible with
59.Xr kstat 8 .
60Note that some statistics are available in both 32- and 64-bit counters,
61in which case the name of the 64 bit statistic will be the same as the
6232-bit, but with
63.Dq Sy 64
64appended.
65For example,
66.Sy ipackets64
67is the 64-bit version of the
68.Sy ipackets
69statistic.
70These are indicated with the special suffix
71.Op Sy 64
72in the table below.
73.
74.Bl -tag -width tx_late_collisions
75.It Sy adv_cap_1000fdx
76Advertises 1000 Mbps full-duplex support.
77.It Sy adv_cap_1000hdx
78Advertises 1000 Mbps half-duplex support.
79.It Sy adv_cap_100fdx
80Advertises 100 Mbps full-duplex support.
81.It Sy adv_cap_100gfdx
82Advertises 100 Gbps support.
83.It Sy adv_cap_100hdx
84Advertises 100 Mbps half-duplex support.
85.It Sy adv_cap_100T4
86Advertises 100BASE-T4 support.
87.It Sy adv_cap_10fdx
88Advertises 10 Mbps full-duplex support.
89.It Sy adv_cap_10gfdx
90Advertises 10 Gbps support.
91.It Sy adv_cap_10hdx
92Advertises 10 Mbps half-duplex support.
93.It Sy adv_cap_2500fdx
94Advertises 2.5 Gbps support.
95.It Sy adv_cap_50gfdx
96Advertises 50 Gbps support.
97.It Sy adv_cap_40gfdx
98Advertises 40 Gbps support.
99.It Sy adv_cap_25gfdx
100Advertises 25 Gbps support.
101.It Sy adv_cap_5000fdx
102Advertises 5 Gbps support.
103.It Sy adv_cap_autoneg
104Advertises auto-negotiation support.
105.It Sy adv_cap_asmpause
106Advertises asymmetric flow control support.
107.It Sy adv_cap_pause
108Advertises flow control support.
109.It Sy adv_rem_fault
110Remote fault status sent to peer.
111.It Sy align_errors
112Mis-aligned frames received.
113.It Sy brdcstrcv
114Broadcast frames received.
115.It Sy brdcstxmt
116Broadcast frames transmitted.
117.It Sy cap_1000fdx
118Device supports 1000 Mbps full-duplex.
119.It Sy cap_1000hdx
120Device supports 1000 Mbps half-duplex.
121.It Sy cap_100fdx
122Device supports 100 Mbps full-duplex.
123.It Sy cap_100gfdx
124Device supports 100 Gbps.
125.It Sy cap_100hdx
126Device supports 100 Mbps half-duplex.
127.It Sy cap_100T4
128Device supports 100BASE-T4.
129.It Sy cap_10fdx
130Device supports 10 Mbps full-duplex.
131.It Sy cap_10gfdx
132Device supports 10 Gpbs.
133.It Sy cap_10hdx
134Device supports 10 Mbps half-duplex.
135.It Sy cap_2500fdx
136Device supports 2.5 Gbps.
137.It Sy cap_50gfdx
138Device supports 50 Gpbs.
139.It Sy cap_40gfdx
140Device supports 40 Gpbs.
141.It Sy cap_25gfdx
142Device supports 25 Gpbs.
143.It Sy cap_5000fdx
144Device supports 5 Gbps.
145.It Sy cap_asmpause
146Device supports asymmetric flow control.
147.It Sy cap_autoneg
148Device supports auto-negotiation.
149.It Sy cap_pause
150Device supports symmetric flow control.
151.It Sy cap_rem_fault
152Device supports remote fault notification.
153.It Sy carrier_errors
154Frames dropped due to loss of link.
155.It Sy collisions
156Collisions.
157.It Sy defer_xmts
158Transmits deferred due to link activity.
159.It Sy ex_collisions
160Frames dropped due to too many collisions.
161.It Sy fcs_errors
162Frames received with bad frame checksum.
163.It Sy first_collisions
164Frames with at least one collision.
165.It Sy ierrors
166Receive errors.
167.It Sy ifspeed
168Link speed in bits per second.
169.It Sy ipackets Ns Op Sy 64
170Frames received successfully.
171.It Sy jabber_errors
172Jabber errors.
173.It Sy link_asmpause
174Asymmetric flow control; works together with
175.Sy link_pause .
176See the description for it below.
177.It Sy link_autoneg
178Link was auto-negotiated.
179.It Sy link_duplex
180Link duplex status, values as follows:
181.Bl -column "0" infinity
182.It 0 Ta Unknown.
183.It 1 Ta Half-duplex.
184.It 2 Ta Full-duplex.
185.El
186.It Sy link_pause
187Link flow control available; works together with
188.Sy link_asmpause .
189The meanings of these bits are:
190.Bl -column "pause" "asmpause"
191.It Sy pause Ta Sy asmpause Ta Sy meaning
192.It 0 Ta 0 Ta "No flow control."
193.It 1 Ta 0 Ta Symmetric flow control.
194.It 0 Ta 1 Ta Honor received pause frames.
195.It 1 Ta 1 Ta Send pause frames when congested.
196.El
197.It Sy link_state
198Link state; 0 for down, 1 for up.
199.It Sy link_up
200Link is up if 1.
201.It Sy lp_cap_1000fdx
202Peer supports 1000 Mbps full-duplex.
203.It Sy lp_cap_1000hdx
204Peer supports 1000 Mbps half-duplex.
205.It Sy lp_cap_100fdx
206Peer supports 100 Mbps full-duplex.
207.It Sy lp_cap_100gfdx
208Peer supports 100 Gbps full-duplex.
209.It Sy lp_cap_100hdx
210Peer supports 100 Mbps half-duplex.
211.It Sy lp_cap_100T4
212Peer supports 100BASE-T4.
213.It Sy lp_cap_10fdx
214Peer supports 10 Mbps full-duplex.
215.It Sy lp_cap_10gfdx
216Peer supports 10 Gbps.
217.It Sy lp_cap_10hdx
218Peer supports 10 Mbps half-duplex.
219.It Sy lp_cap_2500fdx
220Peer supports 2.5 Gbps.
221.It Sy lp_cap_5000fdx
222Peer supports 5 Gbps.
223.It Sy lp_cap_50gfdx
224Peer supports 50 Gbps.
225.It Sy lp_cap_40gfdx
226Peer supports 40 Gbps.
227.It Sy lp_cap_25gfdx
228Peer supports 25 Gbps.
229.It Sy lp_cap_asmpause
230Peer supports asymmetric flow control.
231.It Sy lp_cap_autoneg
232Peer supports auto-negotiation.
233.It Sy lp_cap_pause
234Peer advertises flow control support.
235.It Sy lp_rem_fault
236Peer announces a remote fault.
237.It Sy macrv_errors
238Generic receive errors.
239.It Sy macxmt_errors
240Generic transmit errors.
241.It Sy multi_collisions
242Frames with more than one collision.
243.It Sy multircv
244Multicast frames received.
245.It Sy multixmt
246Multicast frames transmitted.
247.It Sy norcvbuf
248Receive frames dropped due to lack of resources.
249.It Sy noxmtbuf
250Transmit frames dropped due to lack of resources.
251.It Sy obytes Ns Op Sy 64
252Bytes (octets) transmitted successfully.
253.It Sy oerrors
254Transmit errors.
255.It Sy oflo
256Overflow errors.
257.It Sy opackets Ns Op Sy 64
258Frames successfully transmitted.
259.It Sy promisc
260Interface is in promiscuous mode.
261.It Sy rbytes Ns Op Sy 64
262Bytes (octets) received successfully.
263.It Sy runt_errors
264Frames received that were too short.
265.It Sy sqe_errors
266Squelch errors.
267.It Sy toolong_errors
268Frames received that were too long.
269.It Sy tx_late_collisions
270Late collisions on transmit.
271.It Sy uflo
272Underflow errors.
273.It Sy unknowns
274Frames received with no local recipient.
275.It Sy xcvr_addr
276Transceiver address.
277.It Sy xcvr_id
278Transceiver vendor and device ID.
279.It Sy xcvr_inuse
280Identifies the type of transceiver in use.
281Values are as follows:
282.Bl -column "0"
283.It 0 Ta Unknown or undefined.
284.It 1 Ta None.
285.It 2 Ta 10 Mbps
286.It 3 Ta 100BASE-T4
287.It 4 Ta 100BASE-X
288.It 5 Ta 100BASE-T2
289.It 6 Ta 1000BASE-X
290.It 7 Ta 1000BASE-T
291.El
292.El
293.Ss Properties
294The following parameters are accessible with
295.Xr dladm 8 .
296Some of these are normally read-only.
297Other properties that are not specific to IEEE 802.3 / Ethernet links are also
298available via
299.Xr dladm 8 ,
300and are documented in its man page rather than here.
301.
302.Bl -tag -width adv_1000hdx_cap
303.It Sy speed
304Link speed, in Mbps per second (dladm only).
305.It Sy duplex
306Link duplex, either "full" or "half".
307.It Sy state
308Link state, either "up" or "down".
309.It Sy mtu
310Maximum link frame size in bytes.
311See
312.Sx Jumbo Frames .
313.It Sy flowctrl
314Flow control setting, one of \(dqno\(dq, \(dqtx\(dq, \(dqrx\(dq, or \(dqbi\(dq.
315See
316.Sx Flow Control .
317.It Sy adv_10gfdx_cap
318Advertising 10 Gbps support.
319.It Sy en_10gfdx_cap
320Enable 10 Gbps support.
321.
322.It Sy adv_1000fdx_cap
323Advertising 1000 Mbps full-duplex support.
324.It Sy en_1000fdx_cap
325Enable 1000 Mbps full-duplex.
326.
327.It Sy adv_1000hdx_cap
328Advertising 1000 Mbps half-duplex support.
329.It Sy en_1000hdx_cap
330Enable 1000 Mbps half-duplex.
331.
332.It Sy adv_100fdx_cap
333Advertising 100 Mbps full-duplex support.
334.It Sy en_100fdx_cap
335Enable 100 Mbps full-duplex.
336.
337.It Sy adv_100hdx_cap
338Advertising 100 Mbps half-duplex support.
339.It Sy en_100hdx_cap
340Enable 100 Mbps half-duplex.
341.
342.It Sy adv_10fdx_cap
343Advertising 10 Mbps full-duplex support.
344.It Sy en_10fhdx_cap
345Enable 100 Mbps full-duplex.
346.
347.It Sy adv_10hdx_cap
348Advertising 10 Mbps half-duplex support.
349.It Sy en_10fhdx_cap
350Enable 10 Mbps half-duplex.
351.El
352.Ss Auto-negotiation
353With modern devices, auto-negotiation is normally handled automatically.
354With 10 Gbps and 1000 Gbps, it is mandatory (10GBASE-T also requires full-duplex
355operation).
356It is also
357.Em strongly
358recommended for use whenever possible; without auto-negotiation the link
359will usually not operate unless both partners are configured to use the
360same link mode.
361.Lp
362Auto-negotiation, when enabled, takes place by comparing the local capabilities
363that have been advertised (which must also be supported by the local device),
364with the capabilities that have been advertised by the link partner (peer).
365.
366The first of the following modes that is supported by both partners is
367selected as the link negotiation result:
368.Lp
369.Bl -bullet -offset indent -compact
370.It
37110 Gbps (10gfdx)
372.It
3731000 Mbps full-duplex (1000fdx)
374.It
3751000 Mbps half-duplex (1000hdx)
376.It
377100 Mbps full-duplex (100fdx)
378.It
379100BASE-T4 (100T4)
380.It
381100 Mbps half-duplex (100hdx)
382.It
38310 Mbps full-duplex (10fdx)
384.It
38510 Mbps half-duplex (10hdx)
386.El
387.Lp
388Advertisement of these modes can be enabled or disabled by setting the
389appropriate
390.Sy en_
391property in
392.Xr dladm 8 .
393.Lp
394Auto-negotiation may also be disabled, by setting the
395.Sy adv_autoneg_cap
396property to 0.
397In this case, the highest enabled link mode (using the above list) is
398.Dq forced
399for the link.
400.Ss Flow Control
401Link layer flow control is available on many modern devices, and is mandatory
402for operation at 10 Gbps.
403It requires that the link be auto-negotiated, and that the link be full-duplex,
404in order to function.
405.Lp
406Flow control is applied when a receiver becomes congested.
407In this case the receiver can send a special frame, called a pause frame, to
408request its partner cease transmitting for a short period of time.
409.Lp
410Flow control can be said to be either symmetric, in which case both partners
411can send and honor pause frames, or asymmetric, in which case one partner
412may not transmit pause frames.
413.Lp
414The flow control mode used is driven by the
415.Sy flowctrl
416property.
417It has the following meanings:
418.Lp
419.Bl -column -compact -offset indent Dv
420.It \(dqno\(dq Ta Neither send, nor honor pause frames.
421.It \(dqtx\(dq Ta Send pause frames, provided that the peer can support them,
422but do not honor them.
423.It \(dqrx\(dq Ta Receive and honor pause frames.
424.It \(dqbi\(dq Ta Both send and receive (and honor) pause frames.
425.El
426.Lp
427The statistics for flow control
428.Po Sy adv_cap_pause , adv_cap_asmpause , lp_cap_pause , lp_cap_asmpause ,
429.Sy link_pause ,
430and
431.Sy link_asmpause
432.Pc
433are based on the properties exchanged in the auto-negotiation and are
434confusing as a result.
435Administrators are advised to use the
436.Sy flowctrl
437property instead.
438.
439.Ss Jumbo Frames
440The IEEE 802.3 standard specifies a standard frame size of 1518 bytes,
441which includes a 4-byte frame checksum, a 14-byte header, and 1500 bytes
442of payload.
443Most devices support larger frame sizes than this, and when all possible parties
444on the same local network can do so, it may be advantageous to choose a larger
445frame size; 9000 bytes is the most common option, as it allows a transport layer
446to convey 8 KB (8192) of data, while leaving room for various link, network, and
447transport layer headers.
448.Lp
449Note that the use of frames carrying more than 1500 bytes of payload is
450not standardized, even though it is common practice.
451.Lp
452The
453.Sy mtu
454property is used to configure the frame size.
455Note that this is the size of the payload, and excludes the preamble, checksum,
456and header.
457It also excludes the tag for devices that support tagging (see
458.Sx Virtual LANs
459below).
460.Lp
461Care must be taken to ensure that all communication parties agree on the same
462size, or communication may cease to function properly.
463.Lp
464Note that the
465.Sy mtu
466property refers to the link layer property.
467It may be necessary to configure upper layer protocols such as IP to use a
468different size when this changes.
469See
470.Xr ifconfig 8 .
471.
472.Ss Virtual LANs
473Most devices support virtual LANs (and also priority control tagging) though
474the use of a 4-byte tag inserted between the frame header and payload.
475The details of configuration of this are covered in the
476.Xr dladm 8
477manual.
478.
479.Ss Data Link Provider Interface (DLPI) Details
480.
481The correct method for applications to access Ethernet devices directly
482is to use the DLPI.
483See
484.Xr dlpi 4P
485and
486.Xr libdlpi 3LIB
487for further information.
488.Lp
489The following DLPI parameters are presented to applications.
490.Bl -column -offset indent "Broadcast address"
491.It Maximum SDU Ta 1500 (or larger, as determined by the Sy mtu No property.)
492.It Minimum SDU Ta 0
493.It Address length Ta 6
494.It MAC type Ta Dv DL_ETHER
495.It SAP length Ta \(mi2
496.It Service mode Ta Dv DL_CLDLS
497.It Broadcast address Ta Li ff:ff:ff:ff:ff:ff No (6 bytes with all bits set)
498.El
499.Lp
500Note that if the application binds to SAP of 0, then standard IEEE 802.3
501mode is assumed and the frame length is stored in place of the Ethernet type.
502Frames that arrive with the type field set to 1500 or less, are delivered
503to applications that bind to SAP 0.
504.Lp
505Ethernet drivers on the support both DLPI style 1 and style 2 operation.
506Additionally, it is possible to configure provide
507.Dq vanity
508names to interfaces using the
509.Xr dladm 8
510.Sy rename-link
511subcommand.
512Such vanity names are only accessible using DLPI style 1.
513.Sh NOTES
514There may be other mechanisms available to configure link layer properties.
515Historically the
516.Xr ndd 8
517command, and
518.Xr driver.conf 5
519files could be used to do this.
520These methods are deprecated in favor of
521.Xr dladm 8
522properties.
523.
524.Sh INTERFACE STABILITY
525When present, the statistics and properties presented here
526are
527.Sy Committed .
528However, note that not every Ethernet device supports all of these,
529and some devices may support additional statistics and properties.
530.Lp
531The DLPI and IEEE 802.3 itself are
532.Sy Standard .
533.Sh SEE ALSO
534.Xr libdlpi 3LIB ,
535.Xr dlpi 4P ,
536.Xr driver.conf 5 ,
537.Xr dladm 8 ,
538.Xr ifconfig 8 ,
539.Xr kstat 8 ,
540.Xr ndd 8 ,
541.Xr netstat 8
542.Rs
543.%T IEEE 802.3: Ethernet
544.%Q IEEE Standards Association
545.Re
546.Rs
547.%B Data Link Provider Interface (DLPI)
548.%Q The Open Group
549.%D 1997
550.Re
551.Rs
552.%B STREAMs Programming Guide
553.%Q Sun Microsystems, Inc.
554.%D January 2005
555.Re
556