FXP(4)
β¨ FXP(4) β¨ β Intel EtherExpress PRO/100 Ethernet device driver π
Kernel Interfaces Manual β yes bestie, we're in the kernel interfaces section, this is driver territory π«Ά
πΈ NAME πΈ
fxp β the Intel EtherExpress PRO/100 Ethernet device driver. That's it, that's the name, iconic behavior π
π SYNOPSIS π
okay so if you wanna bake this driver into the kernel (no cap, some of y'all do), you drop these lines into your kernel config file:
device miibus
device fxp
OR β if you'd rather load it as a module at boot time (main character energy, honestly), you put this one line in loader.conf(5):
if_fxp_load="YES"
Slay. Pick your lane. π¦
π DESCRIPTION π
So the fxp driver has your back for Ethernet adapters built on the Intel i82557, i82558, i82559, i82550, and i82562 chips. Periodt.
Here's the offload tea π:
- TCP/UDP/IP checksum offload β both transmit and receive, but only on
i82550andi82551. - On
i82559, it's giving... receive only. Just TCP/UDP checksum offload for receive, that's it. - TCP segmentation offload (TSO) for IPv4 plus VLAN hardware tag insertion/stripping β supported on
i82550andi82551only. - Wake On Lan (WOL) β provided on all controllers except
i82557,i82259ER, and earlyi82558revisions. Not those. Sorry not sorry π
π¦ Media Types π¦
The fxp driver supports these media types:
autoselectβ turns on autoselection of the media type and the options. You can override the autoselected mode by adding the media options torc.conf(5). Set it and forget it, lowkey.10baseT/UTPβ sets 10Mbps operation.100baseTXβ sets 100Mbps (Fast Ethernet) operation. Go faster bestie π¨
π Media Options π
The fxp driver supports these media options:
full-duplexβ forces full duplex operation.half-duplexβ forces half duplex operation.
β οΈ Heads up: the 100baseTX media type is not available on the Pro/10. So don't come for it, it's simply not there π
For further info on configuring this device, go see ifconfig(8).
Also β the fxp driver supports reception and transmission of extended frames for vlan(4). This whole capability is controllable via the vlanmtu parameter to ifconfig(8). Cute. π
β The Special Link Option β
The fxp driver also supports a special link option:
link0β some chip revisions have loadable microcode that can be used to reduce the interrupt load on the host CPU. Not all boards have microcode support. Setting thelink0flag withifconfig(8)will download the microcode to the chip if it is available. Fingers crossed bestie π€
π HARDWARE π
Adapters supported by the fxp driver include:
- Intel EtherExpress PRO/10
- Intel InBusiness 10/100
- Intel PRO/100B / EtherExpressPRO/100 B PCI Adapter
- Intel PRO/100+ Management Adapter
- Intel PRO/100 VE Desktop Adapter
- Intel PRO/100 VM Network Connection
- Intel PRO/100 M Desktop Adapter
- Intel PRO/100 S Desktop, Server and Dual-Port Server Adapters
- Many on-board network interfaces on Intel motherboards
Look at that list. It ate. π β¨
π§ LOADER TUNABLES π§
Tunables can be set at the loader(8) prompt before booting the kernel, or stored in loader.conf(5). The following variables are available as both loader(8) tunables and sysctl(8) variables:
dev.fxp.%d.int_delayβ the maximum amount of time, in microseconds, that an interrupt may be delayed in an attempt to coalesce interrupts. This is only effective if the Intel microcode is loaded. Accepted range is 300 to 3000, and the default is 1000.dev.fxp.%d.bundle_maxβ the number of packets that will be bundled, before an interrupt is generated. This is only effective if the Intel microcode is loaded. Accepted range is 1 to 65535, and the default is 6.
Microcode loaded? Then these two are your besties. No microcode? They're just vibing, doing nothing π«Ά
π SYSCTL VARIABLES π
The following variables are available as sysctl(8) variables:
dev.fxp.%d.rnrβ this is a read-only variable and it shows the number of events of RNR (resource not ready). Look, don't touch.dev.fxp.%d.statsβ this is a read-only variable and it displays useful MAC counters maintained in the driver. Numbers go brrr π
π₯ DIAGNOSTICS π₯
fxp%d: couldn't map memoryβ a fatal initialization error has occurred. Big yikes.fxp%d: couldn't map interruptβ a fatal initialization error has occurred. Also big yikes.fxp%d: Failed to malloc memoryβ there are not enough mbuf's available for allocation.fxp%d: device timeoutβ the device has stopped responding to the network, or there is a problem with the network connection (cable). Check the cable bestie πfxp%d: Microcode loaded, int_delay: %d usec bundle_max: %dβ the chip has successfully downloaded the microcode, and changed the parameterized values to the given settings. We love a success story π
π SEE ALSO π
altq(4), arp(4), miibus(4), netintro(4), ng_ether(4), polling(4), vlan(4), ifconfig(8)
Go read them, iykyk πβ¨
π HISTORY π
The fxp device driver first appeared in FreeBSD 2.1. An elder. A legend. We stan an OG π
π AUTHORS π
The fxp device driver was written by David Greenman. It has then been updated to use the busdma API and made endian-clean by Maxime Henrion. This manual page was written by David E. O'Brien.
Thank you for your service, kings π«‘π
okay and that's the whole page bestie β this one came to you from the Debian crew, dated November 26, 2010, and it's filed under FXP(4). Now go configure your NIC and slay πβ¨ππ¦
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 1997 David E. O'Brien
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms