VGE(4)
π VGE(4) β the VIA Velocity gigabit ethernet glow-up
Okay so bestie, welcome to vge(4), aka the Kernel Interfaces Manual page for the VIA Networking Technologies Velocity Gigabit Ethernet adapter driver. Buckle up, this card is lowkey iconic π
β¨ NAME β¨
vge β VIA Networking Technologies Velocity Gigabit Ethernet adapter driver. It's giving "underrated NIC that just does its job", no cap π«Ά
πΈ SYNOPSIS πΈ
So if you wanna compile this driver into the kernel, drop these lines into your kernel configuration file:
device miibus
device vge
Or, alternativement (that's French for "alternatively", bestie π), to load it as a module at boot time, put this line in loader.conf(5):
if_vge_load="YES"
π¦ DESCRIPTION π¦
The vge driver provides support for various NICs and embedded Ethernet interfaces based on the VIA Technologies VT6120, VT6122, VT6130 and VT6132 Velocity Family Gigabit Ethernet controller chips. It's the main character energy of network controllers fr fr π
The VT6120/VT6122 is a 33/66MHz 64-bit PCI device which combines a tri-speed MAC with an integrated 10/100/1000 copper PHY. (Some older cards use an external PHY β vintage vibes π
). The VT6130/VT6132 is the PCI express version of Velocity family. The MAC supports TCP/IP hardware checksums (IPv4 only, don't @ me), TCP large send, VLAN tag insertion and stripping, as well as VLAN filtering, a 64-entry CAM filter and a 64-entry VLAN filter, 64-bit multicast hash filter, 4 separate transmit DMA queues, flow control and jumbo frames (not on VT6130/VT6132) up to 16K in size. The Velocity family controllers have a 16K receive FIFO and 48K transmit FIFO. So many numbers and honestly? they ate π₯
The vge driver takes advantage of the controller's checksum offload and VLAN tagging features, as well as the jumbo frame (except VT6130/VT6132) and CAM filter support. The CAM filter is used for multicast address filtering to provide 64 perfect multicast address filter support. If it is necessary for the interface to join more than 64 multicast groups, the driver will switch over to using the hash filter. That's your 64-group limit, bestie β don't push it π
The jumbo frame support can be enabled by setting the interface MTU to any value larger than the default of 1500 bytes, up to a maximum of 9000 bytes. Jumbo frames are disabled on the VT6130/VT6132 controllers because the TX MAC will hang when trying to send a frame that is larger than 4K. Like, it literally hangs β not the cute kind of hanging out π. The receive and transmit checksum offload support can be toggled on and off using the ifconfig(8) utility.
π Media types π
The vge driver supports the following media types:
autoselectβ Enable autoselection of the media type and options. The user can manually override the autoselected mode by adding media options torc.conf(5). Let it do its thing, or take the wheel, your choice babe β¨10baseT/UTPβ Set 10Mbps operation. Theifconfig(8)mediaoptoption can also be used to select either full-duplex or half-duplex modes.100baseTXβ Set 100Mbps (Fast Ethernet) operation. Theifconfig(8)mediaoptoption can also be used to select either full-duplex or half-duplex modes.1000baseTXβ Set1000baseTXoperation over twisted pair. Theifconfig(8)mediaoptoption can also be used to select either full-duplex or half-duplex modes.
π Media options π
The vge driver supports the following media options:
full-duplexβ Force full duplex operation. πΆhalf-duplexβ Force half duplex operation. πΆ
For more information on configuring this device, see ifconfig(8). Iconic manual, you should read it π
π HARDWARE π
The vge driver supports VIA Networking VT6120, VT6122, VT6130 and VT6132 based Gigabit Ethernet adapters including:
- VIA Networking LAN-on-motherboard Gigabit Ethernet
- ZyXEL
GN650-T64-bit PCI Gigabit Ethernet NIC (ZX1701) - ZyXEL
GN670-T32-bit PCI Gigabit Ethernet NIC (ZX1702)
π LOADER TUNABLES π
Tunables can be set at the loader(8) prompt before booting the kernel or stored in loader.conf(5). Very "set it and forget it" of you π
hw.vge.msi_disableβ This tunable disables MSI support on the Ethernet hardware. The default value is0.
β SYSCTL VARIABLES β
The following variables are available as both sysctl(8) variables and loader(8) tunables:
dev.vge.%d.int_holdoffβ Maximum number of time to delay interrupts. The valid range is0to5100in units of1us, the default is150(150us). The resolution of timer is about20usso finer tuning than20uswouldn't be available. The interface should be brought down and up again before a change takes effect. Yes you have to bounce it, that's the rule bestie π«Άdev.vge.%d.rx_coal_pktβ Maximum number of packets to fire Rx completion interrupt. The valid range is1to255, the default is64.dev.vge.%d.tx_coal_pktβ Maximum number of packets to fire Tx completion interrupt. The valid range is1to255, the default is128.
π DIAGNOSTICS π
vge%d: couldn't map memoryβ A fatal initialization error has occurred. No memory, no vibe πvge%d: couldn't map portsβ A fatal initialization error has occurred. Also fatal. Also not it.vge%d: couldn't map interruptβ A fatal initialization error has occurred. Interrupt? Not mapped. Tragic.vge%d: failed to enable memory mapping!β The driver failed to initialize PCI shared memory mapping. This might happen if the card is not in a bus-master slot. Like, put it in the right slot bestie πvge%d: watchdog timeoutβ The device has stopped responding to the network, or there is a problem with the network connection (cable). Check your cable before spiraling, fr fr.
π¦ SEE ALSO π¦
altq(4), arp(4), miibus(4), netintro(4), ng_ether(4), polling(4), vlan(4), ifconfig(8) β the whole friend group, go read them π
πΈ HISTORY πΈ
The vge device driver first appeared in FreeBSD 5.3. A true elder, still slaying β¨
π AUTHORS π
The vge driver was written by Bill Paul <wpaul@windriver.com>. Thank you Bill for your service, king π
And that's the tea bestie β this was the Debian edition of the page, dated May 29, 2011, and it's still giving. Go configure your NIC and live your best life π ππ
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixpkgs unstable: source
- Copyright (c) 2004 Bill Paul <wpaul@windriver.com>. All rights reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms