NFE(4)

✨ NFE(4) ✨ β€” the NVIDIA nForce MCP Ethernet driver, bestie edition πŸ¦‹

okay so. manual page nfe, section 4, kernel interfaces manual. it's a driver page. yes it's about ethernet. no it's not boring, come sit with me πŸ’–


🌸 NAME 🌸

nfe β€” the NVIDIA nForce MCP Ethernet driver. that's it, that's the whole name, and honestly? iconic.


πŸŽ€ SYNOPSIS πŸŽ€

so like, two ways to get this driver into your life. option one: bake it straight into the kernel. drop these lines in your kernel configuration file:

device miibus
device nfe

option two, the ✨casual✨ route β€” load it as a module at boot time by putting this line in loader.conf(5):

if_nfe_load="YES"

slay. either way you're covered. 🫢


πŸ’… DESCRIPTION πŸ’…

okay so here's the tea: the nfe driver supports PCI Ethernet adapters based on the NVIDIA nForce Media and Communications Processors (MCP). and when i say it supports a lot of them, i mean it, because the chips list goes: nForce, nForce 2, nForce 3, CK804, MCP04, MCP51, MCP55, MCP61, MCP65, MCP67, MCP73, MCP77 and MCP79 Ethernet controller chips. that's a whole family reunion fr fr πŸ’€

supported features, and yes the hardware does the heavy lifting here (hardware support provided):

  • Receive/Transmit IP/TCP/UDP checksum offload
  • Hardware VLAN tag insertion/stripping
  • TCP segmentation offload (TSO)
  • MSI/MSI-X
  • Jumbo Frames

Jumbo Frames? that's a whole vibe you unlock through the interface MTU setting. pick an MTU bigger than 1500 bytes using the ifconfig(8) utility and boom, the adapter is now receiving and transmitting Jumbo Frames. main character energy ✨

πŸ¦‹ media types the nfe driver supports πŸ¦‹

  • autoselect β€” let it choose the media type and options for itself. self-care, honestly.
  • 10baseT/UTP β€” set 10Mbps operation.
  • 100baseTX β€” set 100Mbps (Fast Ethernet) operation.
  • 1000baseT β€” set 1000Mbps (Gigabit Ethernet) operation (recent models only, so check yourself before you wreck yourself).

πŸ“ media options the nfe driver supports πŸ“

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

and for the full rundown on configuring this device? go see ifconfig(8). it's giving "read the other manual, bestie." 😭


🌈 HARDWARE 🌈

here's the full guest list of NVIDIA MCP onboard adapters that nfe supports. no plus-ones, just these:

  • NVIDIA nForce MCP Networking Adapter
  • NVIDIA nForce MCP04 Networking Adapter
  • NVIDIA nForce 430 MCP12 Networking Adapter
  • NVIDIA nForce 430 MCP13 Networking Adapter
  • NVIDIA nForce MCP51 Networking Adapter
  • NVIDIA nForce MCP55 Networking Adapter
  • NVIDIA nForce MCP61 Networking Adapter
  • NVIDIA nForce MCP65 Networking Adapter
  • NVIDIA nForce MCP67 Networking Adapter
  • NVIDIA nForce MCP73 Networking Adapter
  • NVIDIA nForce MCP77 Networking Adapter
  • NVIDIA nForce MCP79 Networking Adapter
  • NVIDIA nForce2 MCP2 Networking Adapter
  • NVIDIA nForce2 400 MCP4 Networking Adapter
  • NVIDIA nForce2 400 MCP5 Networking Adapter
  • NVIDIA nForce3 MCP3 Networking Adapter
  • NVIDIA nForce3 250 MCP6 Networking Adapter
  • NVIDIA nForce3 MCP7 Networking Adapter
  • NVIDIA nForce4 CK804 MCP8 Networking Adapter
  • NVIDIA nForce4 CK804 MCP9 Networking Adapter

twenty of them. twenty. obsessed πŸ’œ


⭐ LOADER TUNABLES ⭐

you can set these at the loader(8) prompt before the kernel even boots, or you can stash them in loader.conf(5). your call, bestie.

  • hw.nfe.msi_disable β€” whether or not MSI support is enabled in the driver. the default value is 0.
  • hw.nfe.msix_disable β€” whether or not MSI-X support is enabled in the driver. the default value is 0.

πŸ’– SYSCTL VARIABLES πŸ’–

these sysctl(8) variables let you modify or monitor nfe behavior. multitasking queen πŸ‘‘

  • dev.nfe.%d.process_limit β€” the maximum number of Rx events to be processed in the event loop before rescheduling a taskqueue. accepted range is 50 to 255, and the default value is 192. and here's the cute part: the interface does not need to be brought down and up again before a change takes effect. no downtime, no drama, we love to see it. πŸ”₯

🧚 SEE ALSO 🧚

altq(4), arp(4), intro(4), miibus(4), netintro(4), pci(4), polling(4), rgephy(4), ifconfig(8), sysctl(8)


πŸ‘‘ HISTORY πŸ‘‘

the nfe device driver first appeared in OpenBSD 3.9, and then in FreeBSD 7.0. glow-up across two operating systems, we stan a crossover event 🌸


πŸ’€ AUTHORS πŸ’€

the nfe driver was written by Jonathan Gray <jsg@openbsd.org> and Damien Bergamini <damien@openbsd.org>. then the nfe driver was ported to FreeBSD by Shigeaki Tagashira <shigeaki@se.hiroshima-u.ac.jp>. legends, all three, no cap πŸ™ˆ


okay and that's the whole page, bestie!! this one's from the Debian crew, dated January 15, 2011, and it's page NFE(4) from the kernel interfaces manual. thank you for coming to my ted talk, go configure your ethernet, ily πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«ΆπŸ˜­πŸ”₯πŸ‘‘πŸŒˆβ­πŸ’€πŸ™ˆπŸ“πŸ§šπŸ’œ

πŸ“¦ where this page comes from