CAS(4)

πŸ’– CAS(4) πŸ’–

okay bestie, gather round, because we're about to talk about the Sun Cassini/Cassini+ and National Semiconductor DP83065 Saturn Gigabit Ethernet driver 🌸 this is a section 4 page from the Kernel Interfaces Manual, and honestly? it's giving niche-but-iconic. the driver is called cas. no cap. πŸ’…


✨ NAME ✨

cas β€” the Sun Cassini/Cassini+ and National Semiconductor DP83065 Saturn Gigabit Ethernet driver. that's it, that's the name, she's simple and she knows what she is πŸ¦‹


✨ SYNOPSIS ✨

so like, you want this driver baked into your kernel? adorable. drop these lines into your kernel configuration file:

device miibus
device cas

orrr, if you're feeling modular and want to load it as a module at boot time (very main character energy, tbh), put this line in loader.conf(5):

if_cas_load="YES"

and that's the whole vibe check βœ…


✨ DESCRIPTION ✨

the cas driver provides support for the Sun Cassini/Cassini+ and National Semiconductor DP83065 Saturn Gigabit Ethernet controllers β€” you'll find these on-board in Sun UltraSPARC machines and also as add-on cards. yes, both. she's versatile πŸ’β€β™€οΈ

now for the slay: all controllers supported by cas have:

  • TCP/UDP checksum offload capability for both receive and transmit πŸ”₯
  • support for the reception and transmission of extended frames for vlan(4)
  • an interrupt coalescing/moderation mechanism
  • and a 512-bit multicast hash filter ✨

and bestie, there's more β€” cas also supports Jumbo Frames (up to 9022 bytes), which you configure via the interface MTU setting. so if you pick an MTU larger than 1500 bytes with the ifconfig(8) utility, you're literally configuring the adapter to receive and transmit Jumbo Frames. it's that easy, we love to see it πŸŽ€


✨ HARDWARE ✨

the chips that cas is obsessed with (mutually):

  • National Semiconductor DP83065 Saturn Gigabit Ethernet
  • Sun Cassini Gigabit Ethernet
  • Sun Cassini+ Gigabit Ethernet

and these add-on cards are known to work with the cas driver at this time (future updates pending, as always πŸ™ˆ):

  • Sun GigaSwift Ethernet 1.0 MMF (Cassini Kuheen) (part no. 501-5524)
  • Sun GigaSwift Ethernet 1.0 UTP (Cassini) (part no. 501-5902)
  • Sun GigaSwift Ethernet UTP (GCS) (part no. 501-6719)
  • Sun Quad GigaSwift Ethernet UTP (QGE) (part no. 501-6522)
  • Sun Quad GigaSwift Ethernet PCI-X (QGE-X) (part no. 501-6738)

she has a type, and the type is Sun cards πŸ’œ


✨ NOTES ✨

okay this part matters, so listen up πŸ‘‘

on sparc64, the cas driver respects the local-mac-address? system configuration variable. you can set that in the Open Firmware boot monitor using the setenv command, or with eeprom(8).

so here's the breakdown:

  • if it's set to "false" (which is the default, fyi), cas will use the system's default MAC address for all of its devices.
  • if it's set to "true", then the unique MAC address of each interface is used if present, rather than the system's default MAC address. periodt. πŸ’…

and which interfaces have their own MAC address, you ask? supported interfaces with their own MAC address include on-board versions on boards equipped with more than one Ethernet interface and all add-on cards. iykyk 🌈


✨ SEE ALSO ✨

go read these next, bestie, they're all part of the lore:

altq(4), miibus(4), netintro(4), vlan(4), eeprom(8), ifconfig(8)


✨ HISTORY ✨

the cas device driver appeared in FreeBSD 8.0 and FreeBSD 7.3. πŸŽ‰

and here's the fun lil origin story: it's named after the cas driver which first appeared in OpenBSD 4.1 and supports the same set of controllers β€” but is otherwise completely unrelated. same name, different girl, no drama 🫢


✨ AUTHORS ✨

the cas driver was written by Marius Strobl <marius@FreeBSD.org>, based on the gem(4) driver. king behavior, honestly πŸ‘‘


and that's the whole page, bestie!! this one shipped out under the Debian banner, dated March 24, 2012 β€” shoutout to the CAS(4) manual page for existing and for being exactly this iconic πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«ΆπŸ˜­πŸ”₯πŸ‘‘πŸŒˆβ­πŸ’€πŸ™ˆπŸ“πŸ§šπŸ’œ

πŸ“¦ where this page comes from