SBNI(4)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1

πŸ’… SBNI(4) β€” bestie edition

okay so you're on the i386 Kernel Interfaces Manual page, and today's main character is sbni πŸ’– (yes the header literally says SBNI(4) up top and i386 Kernel Interfaces Manual right next to it, we love a formal entrance ✨)


🌸 NAME

sbni β€” the Granch SBNI12 leased line modem driver πŸŽ€

like, it's the driver that makes your leased line modem go brrr. no cap.


✨ SYNOPSIS

device sbni

that's it. that's the whole vibe check. one line and you're in πŸ‘‘


πŸ¦‹ DESCRIPTION

okay so the sbni driver provides support for leased line modems of these models, and I need you to read the whole list because every single one matters πŸ’…

  • SBNI12-02, SBNI12D-02
  • SBNI12-04, SBNI12D-04
  • SBNI12-05, SBNI12D-05, ISA and PCI
  • SBNI12-10, SBNI12D-10, ISA and PCI

and also a kit for data link over a voice band, which is lowkey iconic:

  • SBNI12-11, SBNI12D-11, ISA and PCI.

so here's the tea πŸ“: besides the standard port and IRQ specifications, the sbni driver also supports a number of flags which can set baud rate, receive level, and the low three bytes of the Ethernet MAC-address (the high three are always 00:ff:01, periodt, they never change). why do the flags exist? because Granch modems are presented to the system as Ethernet-like network cards 🫢

the high byte of the flags is a bit field, and it's used to specify the SBNI adapter receive level/baud rate. let's break it down, bestie:

  • Bits 0-3: receive level (0x00..0x0f)
  • Bits 4-5: baud rate number:
    • 00 - 0 baud rate (2Mb in fast mode/500kb in slow)
    • 01 - 1 baud rate (1Mb/250kb)
    • 10 - 2 baud rate (500kb/125kb)
    • 11 - 3 baud rate (250kb/62.5kb)
  • Bit 6: use fixed receive level
    • if bit 6 is set then receive level will be set according to bits 0-3 value, otherwise receive level will be autodetected πŸ‘€
  • Bit 7: use fixed baud rate
    • if bit 7 is set then baud rate will be set according to bits 4-5 value, otherwise baud rate is set to 2Mb
fr fr, bit 6 and bit 7 are the "do I want to be a control freak about this or let the hardware figure it out" switches and honestly same 😭

πŸŽ€ FILES

the sources for the driver reside in, and I'm listing them exactly because you WILL need them:

/sys/dev/sbni/if_sbni.c
/sys/dev/sbni/if_sbnireg.h
/sys/dev/sbni/if_sbnivar.h

πŸ”₯ SEE ALSO

go read these next, iykyk:


πŸ’œ HISTORY

the sbni device driver first appeared in FreeBSD 4.6. a whole era. we stan a vintage queen πŸ‘‘


🌈 AUTHORS

the sbni device driver for FreeBSD 4.x was written by Denis I. Timofeev, partially based on David Greenman's ed(4) driver. earlier versions (available on ftp.granch.com) were written by Alexey V. Zverev. give them their flowers πŸ’

and SBNI12 hardware was designed by Alexey V. Chirkov. hardware icon behavior only 🧚


πŸ’€ one last thing: nothing here is marked deprecated or dangerous, so no scary warnings today β€” but always keep your flags straight, bestie, because bit 6 and bit 7 lowkey decide your whole receive level and baud rate destiny πŸ™ˆ

and that's the page, bestie πŸŽ€ this little bundle of joy came from Debian, dated January 8, 2002 β€” vintage, iconic, and still giving SBNI(4) energy βœ¨πŸ’…

πŸ“¦ where this page comes from