.\" $NetBSD: ifmedia.4,v 1.31 2018/08/13 06:04:35 wiz Exp $
.\"
.\" Copyright (c) 1998, 1999, 2000, 2001, 2002, 2003, 2004
.\" The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to The NetBSD Foundation
.\" by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
.\" NASA Ames Research Center.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd August 3, 2018
.Dt IFMEDIA 4
.Os
.Sh NAME
.Nm ifmedia
.Nd network interface media settings
.Sh SYNOPSIS
.In sys/socket.h
.In net/if.h
.In net/if_media.h
.Sh DESCRIPTION
The
.Nm
interface provides a consistent method for querying and setting
network interface media and media options.
The media is typically
set using the
.Xr ifconfig 8
command.
.Pp
There are currently four link types supported by
.Nm :
.Bl -tag -offset indent -width IFM_IEEE80211 -compact
.It Dv IFM_ETHER
Ethernet
.It Dv IFM_TOKEN
Token Ring
.It Dv IFM_FDDI
FDDI
.It Dv IFM_IEEE80211
IEEE802.11 Wireless LAN
.El
.Pp
The following sections describe the possible media settings for each
link type.
Not all of these are supported by every device; refer to
your device's manual page for more information.
.Pp
The lists below provide the possible names of each media type or option.
The first name in the list is the canonical name of the media type or
option.
Additional names are acceptable aliases for the media type or
option.
.Sh COMMON MEDIA TYPES AND OPTIONS
The following media types are shared by all link types:
.Bl -tag -offset indent -width IFM_MANUAL -compact
.It Dv IFM_AUTO
Autoselect the best media.
[autoselect, auto]
.It Dv IFM_MANUAL
Jumper or switch on device selects media.
[manual]
.It Dv IFM_NONE
Deselect all media.
[none]
.El
.Pp
The following media options are shared by all link types:
.Bl -tag -offset indent -width IFM_FLAG0
.It Dv IFM_FDX
Place the device into full-duplex mode.
This option only has meaning
if the device is normally not full-duplex.
[full-duplex, fdx]
.It Dv IFM_HDX
Place the device into half-duplex mode.
This option only has meaning
if the device is normally not half-duplex.
[half-duplex, hdx]
.It Dv IFM_FLOW
Hardware flow control support.
[flowcontrol, flow]
.It Dv IFM_FLAG0
Driver-defined flag.
[flag0]
.It Dv IFM_FLAG1
Driver-defined flag.
[flag1]
.It Dv IFM_FLAG2
Driver-defined flag.
[flag2]
.It Dv IFM_LOOP
Place the device into hardware loopback mode.
[loopback, hw-loopback, loop]
.El
.Sh MEDIA TYPES AND OPTIONS FOR ETHERNET
The following media types are defined for Ethernet:
.Bl -tag -offset indent -width IFM_1000_FX
.It Dv IFM_HPNA_1
HomePNA 1.0, 1Mb/s.
[HomePNA1, HPNA1]
.It Dv IFM_10_T
10BASE-T, 10Mb/s over unshielded twisted pair, RJ45 connector.
[10baseT, UTP, 10UTP]
.It Dv IFM_10_2
10BASE2, 10Mb/s over coaxial cable, BNC connector, also called Thinnet.
[10base2, BNC, 10BNC]
.It Dv IFM_10_5
10BASE5, 10Mb/s over 15-wire cables, DB15 connector, also called AUI.
[10base5, AUI, 10AUI]
.It Dv IFM_10_STP
10BASE-STP, 10Mb/s over shielded twisted pair, DB9 connector.
[10baseSTP, STP, 10STP]
.It Dv IFM_10_FL
10BASE-FL, 10Mb/s over fiber optic cables.
[10baseFL, FL, 10FL]
.It Dv IFM_100_TX
100BASE-TX, 100Mb/s over unshielded twisted pair, RJ45 connector.
[100baseTX, 100TX]
.It Dv IFM_100_FX
100BASE-FX, 100Mb/s over fiber optic cables.
[100baseFX, 100FX]
.It Dv IFM_100_T4
100BASE-T4, 100Mb/s over 4-wire (category 3) unshielded twisted pair, RJ45
connector.
[100baseT4, 100T4]
.It Dv IFM_100_T2
100BASE-T2.
[100baseT2, 100T2]
.It Dv IFM_100_VG
100VG-AnyLAN.
[100baseVG, 100VG]
.It Dv IFM_1000_SX
1000BASE-SX, 1Gb/s over multi-mode fiber optic cables.
(short waves)
[1000baseSX, 1000SX]
.It Dv IFM_1000_LX
1000BASE-LX, 1Gb/s over single-mode fiber or multi-mode fiber optic cables.
(long waves)
[1000baseLX, 1000LX]
.It Dv IFM_1000_BX10
1000BASE-BX10, 1Gb/s over bidirectional fiber optic cables.
(long waves)
[1000BASE-BX10]
.It Dv IFM_1000_CX
1000BASE-CX, 1Gb/s over shielded twisted pair.
(twinax)
[1000baseCX, 1000CX]
.It Dv IFM_1000_T
1000BASE-T, 1Gb/s over category 5 unshielded twisted pair, 802.3ab, RJ45
connector.
[1000baseT, 1000T]
.It Dv IFM_1000_KX
1000BASE-KX, 1Gb/s backplane.
[1000BASE-KX, 1000baseKX]
.It Dv IFM_2500_SX
2500BASE-SX, 2.5Gb/s over multi-mode fiber optic cables.
[2500baseSX, 2500SX]
.It Dv IFM_2500_T
2.5GBASE-T, 2.5Gb/s over category 5e.
[2.5GBASE-T, 2500baseT]
.It Dv IFM_2500_KX
2500BASE-KX, 2.5Gb/s backplane.
[2500BASE-KX, 2500baseKX]
.It Dv IFM_5000_T
5GBASE-T, 5Gb/s over category 6.
[5GBASE-T, 5GbaseT]
.It Dv IFM_10G_CX4
10GBASE-CX4, 10Gb/s over XAUI 4-lane PCS and copper cables.
[10GbaseCX4, 10GCX4, 10GBASE-CX4]
.It Dv IFM_10G_LR
10GBASE-LR, 10Gb/s over single-mode fiber optic cables.
[10GbaseLR, 10GLR]
.It Dv IFM_10G_LRM
10GBASE-LR, 10Gb/s over single-mode fiber optic cables.
[10GbaseLRM]
.It Dv IFM_10G_SR
10GBASE-SR, 10Gb/s over multi-mode fiber optic cables.
[10GbaseSR, 10GSR, 10GBASE-SR]
.It Dv IFM_10G_T
10GBASE-T, 10Gb/s over unshielded twisted pair, RJ45 connector.
[10Gbase-T]
.It Dv IFM_10G_TWINAX
SFP+ direct attach, 10Gb/s over twinaxial cable.
[10Gbase-Twinax]
.El
.Pp
The following media option is defined for Ethernet:
.Bl -tag -offset indent -width IFM_ETH_TXPAUSE
.It Dv IFM_ETH_MASTER
Configure a 1000BASE-T PHY as the clock master for a 1000BASE-T link.
This option has no effect
.Pq shows current status only
if the media is
.Dv IFM_AUTO .
.It Dv IFM_ETH_TXPAUSE
Configure the device to send PAUSE
.Pq flow control
frames.
This option has no effect
.Pq shows current status only
if the media is
.Dv IFM_AUTO .
.It Dv IFM_ETH_RXPAUSE
Configure the device to receive PAUSE
.Pq flow control
frames.
This option has no effect
.Pq shows current status only
if the media is
.Dv IFM_AUTO .
.El
.Sh MEDIA TYPES AND OPTIONS FOR TOKEN RING
The following media types are defined for Token Ring:
.Bl -tag -offset indent -width IFM_TOK_UTP16
.It Dv IFM_TOK_STP4
4Mb/s, shielded twisted pair, DB9 connector.
[DB9/4Mbit, 4STP]
.It Dv IFM_TOK_STP16
16Mb/s, shielded twisted pair, DB9 connector.
[DB9/16Mbit, 16STP]
.It Dv IFM_TOK_UTP4
4Mb/s, unshielded twisted pair, RJ45 connector.
[UTP/4Mbit, 4UTP]
.It Dv IFM_TOK_UTP16
16Mb/s, unshielded twisted pair, RJ45 connector.
[UTP/16Mbit, 16UTP]
.El
.Pp
The following media options are defined for Token Ring:
.Bl -tag -offset indent -width IFM_TOK_SRCRT
.It Dv IFM_TOK_ETR
Early token release.
[EarlyTokenRelease, ETR]
.It Dv IFM_TOK_SRCRT
Enable source routing features.
[SourceRouting, SRCRT]
.It Dv IFM_TOK_ALLR
All routes vs. single route broadcast.
[AllRoutes, ALLR]
.El
.Sh MEDIA TYPES AND OPTIONS FOR FDDI
The following media types are defined for FDDI:
.Bl -tag -offset indent -width IFM_FDDI_SMF -compact
.It Dv IFM_FDDI_SMF
Single-mode fiber.
[Single-mode, SMF]
.It Dv IFM_FDDI_MMF
Multi-mode fiber.
[Multi-mode, MMF]
.It Dv IFM_FDDI_UTP
Unshielded twisted pair, RJ45 connector.
[UTP, CDDI]
.El
.Pp
The following media options are defined for FDDI:
.Bl -tag -offset indent -width IFM_FDDI_DA
.It Dv IFM_FDDI_DA
Dual-attached station vs. Single-attached station.
[dual-attach, das]
.El
.Sh MEDIA TYPES AND OPTIONS FOR IEEE802.11 WIRELESS LAN
The following media types are defined for IEEE802.11 Wireless LAN:
.Bl -tag -offset indent -width IFM_IEEE80211_OFDM12 -compact
.It Dv IFM_IEEE80211_FH1
Frequency Hopping 1Mbps.
[FH1]
.It Dv IFM_IEEE80211_FH2
Frequency Hopping 2Mbps.
[FH2]
.It Dv IFM_IEEE80211_DS1
Direct Sequence 1Mbps.
[DS1]
.It Dv IFM_IEEE80211_DS2
Direct Sequence 2Mbps.
[DS2]
.It Dv IFM_IEEE80211_DS5
Direct Sequence 5Mbps.
[DS5]
.It Dv IFM_IEEE80211_DS11
Direct Sequence 11Mbps.
[DS11]
.It Dv IFM_IEEE80211_DS22
Direct Sequence 22Mbps.
[DS22]
.It Dv IFM_IEEE80211_OFDM6
Orthogonal Frequency Division Multiplexing 6Mbps.
[OFDM6]
.It Dv IFM_IEEE80211_OFDM9
Orthogonal Frequency Division Multiplexing 9Mbps.
[OFDM9]
.It Dv IFM_IEEE80211_OFDM12
Orthogonal Frequency Division Multiplexing 12Mbps.
[OFDM12]
.It Dv IFM_IEEE80211_OFDM18
Orthogonal Frequency Division Multiplexing 18Mbps.
[OFDM18]
.It Dv IFM_IEEE80211_OFDM24
Orthogonal Frequency Division Multiplexing 24Mbps.
[OFDM24]
.It Dv IFM_IEEE80211_OFDM36
Orthogonal Frequency Division Multiplexing 36Mbps.
[OFDM36]
.It Dv IFM_IEEE80211_OFDM48
Orthogonal Frequency Division Multiplexing 48Mbps.
[OFDM48]
.It Dv IFM_IEEE80211_OFDM54
Orthogonal Frequency Division Multiplexing 54Mbps.
[OFDM54]
.It Dv IFM_IEEE80211_OFDM72
Orthogonal Frequency Division Multiplexing 72Mbps.
[OFDM72]
.El
.Pp
The following media options are defined for IEEE802.11 Wireless LAN:
.Bl -tag -offset indent -width IFM_IEEE80211_MONITOR
.It Dv IFM_IEEE80211_ADHOC
Ad-hoc (IBSS) mode.
[adhoc, ibss]
.Lp
In some drivers, it may be used with the
.Dv IFM_FLAG0
[flag0] media option to specify non-standard ad-hoc demo mode.
.It Dv IFM_IEEE80211_HOSTAP
Access Point mode [hostap]
.It Dv IFM_IEEE80211_MONITOR
Monitor mode [monitor]
.It Dv IFM_IEEE80211_TURBO
Turbo mode [turbo]
.El
.Sh SEE ALSO
.Xr netintro 4 ,
.Xr ifconfig 8
.Sh HISTORY
The
.Nm
interface first appeared in
.Bsx 3.0 .
The implementation that appeared in
.Nx 1.3
was written by Jonathan Stone and Jason R. Thorpe to be compatible with
the BSDI API.
It has since gone through several revisions which have
extended the API while maintaining backwards compatibility with the
original API.
.Pp
Support for the
.Sy IEEE802.11 Wireless LAN
link type was added in
.Nx 1.5 .