AE(4)

πŸ’– AE(4) β€” the Attansic/Atheros L2 FastEthernet controller driver πŸ’–

okay bestie, welcome to AE(4), a page from the Kernel Interfaces Manual ✨ this is the whole vibe on the ae driver β€” the lil guy who speaks to your Attansic/Atheros L2 FastEthernet controller. let's get into it 🫢


🌸 NAME 🌸

ae β€” the Attansic/Atheros L2 FastEthernet controller driver. that's it, that's the name, periodt πŸ’…


✨ SYNOPSIS ✨

so if you wanna bake this driver into the kernel (main character energy, no modules), you drop these lines into your kernel configuration file:

device miibus
device ae

orrr, if you'd rather load it as a module at boot time (lowkey easier ngl), you put this line in loader.conf(5):

if_ae_load="YES"
not me giving you two whole paths to the same destiny πŸ’€ pick your fighter.

πŸ¦‹ DESCRIPTION πŸ¦‹

the ae device driver provides support for Attansic/Atheros L2 PCIe FastEthernet controllers. that's the whole job, and it does it well πŸŽ€

the controller itself is giving ✨capable✨ β€” it supports:

  • hardware Ethernet checksum processing πŸ”₯
  • hardware VLAN tag stripping/insertion πŸ‘‘
  • an interrupt moderation mechanism
  • and Attansic L2 also features a 64-bit multicast hash filter, iconic fr fr

the media types it supports 🌈

  • autoselect β€” enable autoselection of the media type and options. and yes, you can manually override the autoselected mode by adding media options to rc.conf(5). you're in charge, bestie πŸ’…
  • 10baseT/UTP β€” select 10Mbps operation.
  • 100baseTX β€” set 100Mbps (FastEthernet) operation. the fast one, as advertised ⭐

and the media options πŸŽ€

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

want the whole lore on configuring this device? go see ifconfig(8). iykyk πŸ’œ


πŸ’» HARDWARE πŸ’»

the ae driver supports Attansic/Atheros L2 PCIe FastEthernet controllers, and is known to support the following hardware:

  • ASUS EeePC 701
  • ASUS EeePC 900
other hardware may or may not work with this driver. no promises, no cap πŸ™ˆ

⭐ LOADER TUNABLES ⭐

tunables can be set at the loader(8) prompt before booting the kernel, or stored in loader.conf(5). your choice, both slay 🫢

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

🧚 SYSCTL VARIABLES 🧚

the ae driver collects a number of useful MAC counter during the work πŸ‘‘ the statistics is available via the dev.ae.%d.stats sysctl(8) tree, where %d corresponds to the controller number.

so yeah, go peek at your counters. data is beautiful πŸ’–


πŸ’€ DIAGNOSTICS πŸ’€

the messages your kernel might yell at you, decoded:

  • ae%d: watchdog timeout. β€” the device has stopped responding to the network, or there is a problem with the network connection (cable).
  • ae%d: reset timeout. β€” the card reset operation has been timed out.
  • ae%d: Generating random ethernet address. β€” no valid Ethernet address was found in the controller NVRAM and registers. a random locally administered address with ASUS OUI identifier will be used instead.
that last one is the driver going "fine, i'll do it myself" 😭 not ideal but it's handled.

🌈 SEE ALSO 🌈

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


πŸ‘‘ HISTORY πŸ‘‘

the ae driver and this manual page was written by Stanislav Sedov <stas@FreeBSD.org>. it first appeared in FreeBSD 7.1. a legend, honestly πŸ’…


πŸ“ BUGS πŸ“

okay so here's the tea, and it's a lil bit of a downer but we keep it real:

the Attansic L2 FastEthernet controller supports DMA but does not use a descriptor based transfer mechanism via scatter-gather DMA. so the data should be copied to/from the controller memory on each transmit/receive. furthermore, a lot of data alignment restrictions apply. this may introduce a high CPU load on systems with heavy network activity. 😭

luckily enough this should not be a problem on modern hardware as L2 does not support speeds faster than 100Mbps. so breathe, bestie 🫢✨

and that's the whole page, mwah πŸ’– this one came from the Debian build of the manual, dated May 17, 2019 β€” shoutout to that timestamp for holding it down all this time πŸŽ€ stay fast, stay Ethernet, and always read your diagnostics before you panic πŸ¦‹

πŸ“¦ where this page comes from