VTE(4)

VTE(4) πŸ’–

okay bestie, so this is the vte page from the Kernel Interfaces Manual, and it's literally all about a NIC driver. yes, a network card. don't scroll away, it's cute actually πŸ¦‹


✨ NAME ✨

vte β€” the Vortex86 RDC R6040 Fast Ethernet driver πŸ’…


🌸 SYNOPSIS 🌸

so like, you got two ways to do this, queen. pick your fighter:

option one β€” bake it into the kernel. drop these exact lines into your kernel config file:

device miibus
device vte

option two β€” load it as a module at boot. put this line in loader.conf(5):

if_vte_load="YES"

slay, that's it πŸŽ€


πŸ’– DESCRIPTION πŸ’–

the vte device driver is the support system for the RDC R6040 Fast Ethernet controller, which you'll usually find chilling on a Vortex86 System On a Chip (SoC). it's giving embedded, it's giving tiny computer, it's giving iconic ✨

the RDC R6040 comes with an integrated 10/100 PHY, so you get 10/100Mbps support in either full or half-duplex, no extra hardware needed, we love a self-sufficient king πŸ‘‘

and the controller? oh she's stacked:

  • interrupt moderation mechanism βœ…
  • a 64-bit multicast hash filter βœ…
  • VLAN over-size frame βœ…
  • four station addresses βœ…

the vte device driver uses three station addresses out of those four as a perfect multicast filter. so like, one of them is just sitting there. not invited. πŸ’€


πŸ¦‹ the media types πŸ¦‹

the vte driver supports these media types:

  • autoselect β€” lets it autoselect the media type and options for you. and yes, you can manually override the autoselected mode by adding media options to rc.conf(5). main character energy, choosing your own destiny πŸ’«
  • 10baseT/UTP β€” sets 10Mbps operation.
  • 100baseTX β€” sets 100Mbps (Fast Ethernet) operation. fast. periodt πŸ”₯

πŸ’œ the media options πŸ’œ

and these media options:

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

for more info on configuring this device, go look at ifconfig(8) bestie 🫢


⭐ HARDWARE ⭐

the vte device driver provides support for this Ethernet controller:

  • DM&P Vortex86 RDC R6040 Fast Ethernet controller

just the one. she's exclusive πŸ’…


🌈 LOADER TUNABLES 🌈

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

  • hw.vte.tx_deep_copy β€” okay so here's the tea 🍡 the RDC R6040 controller has no auto-padding support for short frames, and its DMA engine does not have the capability to handle multiple buffers for a TX frame. so the driver has to create a single contiguous TX buffer. this hardware limitation leads to poor TX performance, since most of the CPU cycles get wasted on both de-fragmenting mbuf chains and padding. tragic, honestly 😭 this tunable enables deep copy operation for TX frames, so the driver spends fewer CPU cycles on de-fragmentation β€” the tradeoff being extra TX buffer memory. the default value is 1, which means deep copy is on. no cap πŸ“Œ

πŸ’€ SYSCTL VARIABLES πŸ’€

these variables are available as both sysctl(8) variables and loader(8) tunables. dual threat, we stan 🫢

  • dev.vte.%d.rx_mod β€” maximum number of packets to fire the RX completion interrupt. accepted range is 0 to 15, default is 15.
  • dev.vte.%d.tx_mod β€” maximum number of packets to fire the TX completion interrupt. accepted range is 0 to 15, default is 15.
  • dev.vte.%d.stats β€” shows the hardware MAC statistics maintained in the driver. numbers, but make it fashion πŸ“Š

πŸŽ€ SEE ALSO πŸŽ€

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

DM&P Electronics Inc. Vortex86, http://www.dmp.com.tw.

go read them, i'll wait πŸ’–


πŸ‘‘ HISTORY πŸ‘‘

the vte driver was written by Pyun YongHyeon <yongari@FreeBSD.org>. it first appeared in FreeBSD 8.3. a legend, honestly 🌟


and that's the whole page bestie, you're officially a vte expert now, iykyk πŸ’…

this lil masterpiece is from Debian, dated December 30, 2010 β€” vintage, but make it timeless πŸŽ€βœ¨

mwah, go configure something. πŸ’–

πŸ“¦ where this page comes from