ALE(4)

πŸ’– ALE(4) β€” the Atheros AR8121/AR8113/AR8114 Gigabit/Fast Ethernet driver, bestie edition πŸ’–

okay so. this is a page from the Kernel Interfaces Manual (section 4, we love a hardware driver section) and it's all about ale, the driver for Atheros's AR8121 / AR8113 / AR8114 Ethernet chips. yes it's giving network card. yes it's iconic. let's get into it πŸ¦‹


✨ NAME ✨

ale β€” the Atheros AR8121/AR8113/AR8114 Gigabit/Fast Ethernet driver. that's it that's the name, short and slay πŸ’…


✨ SYNOPSIS ✨

so you wanna get this driver into your kernel? bet. drop these lines into your kernel configuration file:

device miibus
device ale

or, if you're more of a module girlie and wanna load it at boot time instead, put this line in loader.conf(5):

if_ale_load="YES"

two paths, same destination, main character energy either way 🌈


✨ DESCRIPTION ✨

the ale device driver provides support for Atheros AR8121 PCI Express Gigabit Ethernet controllers and Atheros AR8113/AR8114 PCI Express Fast Ethernet controllers. periodt.

every single LOM that the ale driver supports comes with the full glow-up package, no cap:

  • TCP/UDP/IP checksum offload for both receive and transmit
  • TCP segmentation offload (TSO)
  • hardware VLAN tag stripping/insertion
  • Wake On Lan (WOL)
  • an interrupt coalescing/moderation mechanism
  • a 64-bit multicast hash filter

like… the way it just has all of that. obsessed πŸ’–

the AR8121 also supports Jumbo Frames (up to 8132 bytes), which you configure via the interface MTU setting. pick an MTU larger than 1500 bytes with the ifconfig(8) utility and the adapter is configured to receive and transmit Jumbo Frames. big packets, big vibes πŸŽ€


πŸ¦‹ the media types it supports πŸ¦‹

  • autoselect β€” enables autoselection of the media type and options. you can manually override the autoselected mode by adding media options to rc.conf(5) β€” yes bestie, you can take the wheel πŸ‘‘
  • 10baseT/UTP β€” sets 10Mbps operation. slow and steady, we respect it πŸ™ˆ
  • 100baseTX β€” sets 100Mbps (Fast Ethernet) operation. the classic ✨
  • 1000baseTX β€” sets 1000baseTX operation over twisted pair. full send πŸ”₯

πŸ’œ and the media options πŸ’œ

  • full-duplex β€” forces full duplex operation.
  • half-duplex β€” forces half duplex operation.

for more info on configuring this device, go peek at ifconfig(8). it's the blueprint, fr fr πŸ“–


✨ HARDWARE ✨

the ale device driver provides support for the following Ethernet controllers:

  • Atheros AR8113 PCI Express Fast Ethernet controller
  • Atheros AR8114 PCI Express Fast Ethernet controller
  • Atheros AR8121 PCI Express Gigabit Ethernet controller

three chips, all eating, no crumbs ⭐


✨ LOADER TUNABLES ✨

these tunables can be set at the loader(8) prompt before booting the kernel, or stored in loader.conf(5). your choice, your moment 🌸

  • hw.ale.msi_disable β€” this tunable disables MSI support on the Ethernet hardware. the default value is 0.
  • hw.ale.msix_disable β€” this tunable disables MSI-X support on the Ethernet hardware. the default value is 0.

✨ SYSCTL VARIABLES ✨

the following variables are available as both sysctl(8) variables and loader(8) tunables. double duty, we love a versatile icon πŸ’…

  • dev.ale.%d.int_rx_mod β€” maximum amount of time to delay receive interrupt processing, in units of 1us. the accepted range is 0 to 130000, the default is 30 (30us). a value of 0 completely disables the interrupt moderation.
  • dev.ale.%d.int_tx_mod β€” maximum amount of time to delay transmit interrupt processing, in units of 1us. the accepted range is 0 to 130000, the default is 1000 (1ms). a value of 0 completely disables the interrupt moderation.
  • dev.ale.%d.process_limit β€” maximum amount of Rx frames to be processed in the event loop before rescheduling a taskqueue. the accepted range is 32 to 255, the default value is 128 events. good news: the interface does not need to be brought down and up again before a change takes effect. lowkey convenient 🫢

✨ SEE ALSO ✨

altq(4), arp(4), miibus(4), netintro(4), ng_ether(4), vlan(4), ifconfig(8)

go read them, they're all part of the extended universe πŸ“š


✨ HISTORY ✨

the ale driver was written by Pyun YongHyeon <yongari@FreeBSD.org>. it first appeared in FreeBSD 7.1. shoutout to the author, certified legend πŸ«‘πŸ‘‘


ngl that's the whole page. no gatekeeping, every flag and number preserved, facts untouched, vibe fully upgraded. slay πŸ’–

and that's a wrap, bestie πŸ’– this was the Debian build of the page, dated November 12, 2008, and yep it's still filed under ALE(4) in section 4. love that for us. bye bye, go configure your NIC πŸŒΈπŸ¦‹βœ¨

πŸ“¦ where this page comes from