SL(4)

πŸ“¦ version 11.0, in nixpkgs unstable

✨ SL(4) ✨

Bestie, gather 'round, because today we're talking about the Serial Line IP network interface β€” aka sl β€” and honestly? It's giving vintage tech realness. This is a page from the Kernel Interfaces Manual, and it's lowkey a whole mood. Let's get into it πŸ’…


🌸 NAME 🌸

sl β€” the Serial Line IP (SLIP) network interface, bestie. That's it. That's the vibe.


πŸ¦‹ SYNOPSIS πŸ¦‹

pseudo-device sl

No cap, that's the whole synopsis. Iconic minimalism. ✨


πŸ’– DESCRIPTION πŸ’–

Okay so picture this: the sl interface lets you use asynchronous serial lines as straight-up IPv4 network interfaces using the SLIP protocol. Yes, we're making old-school serial lines do modern network things. It's giving "make it work" energy πŸ”₯

But listen β€” you can't just magically summon it. To use the sl interface, the administrator has to first create the interface and then assign a tty line to it. Two-step process, bestie. Stay with me:

  • The sl interface gets created using the ifconfig(8) create subcommand.
  • Then slattach(8) is what you use to assign a tty line to the interface.
  • Once it's attached? Then you configure network source and destination addresses and other parameters via ifconfig(8).

Periodt. That's the workflow πŸŽ€

Here's the cute part: the sl interface can use Van Jacobson TCP header compression AND ICMP filtering. And the way you control these properties of a SLIP link is with the following flags to ifconfig(8). Let's break them down, one by one, because we don't skip details in this house πŸ’œ

  • link0 β€” Turn on Van Jacobson header compression. Slay. πŸ’…
  • -link0 β€” Turn off header compression. This is the default, so if you didn't touch anything, this is what you got.
  • link1 β€” Don't pass through ICMP packets. Blocking the ICMP girlies πŸ™ˆ
  • -link1 β€” Do pass through ICMP packets. This is the default. ICMP gets to stay.
  • link2 β€” If a packet with a compressed header is received, automatically enable compression of outgoing packets. This is the default β€” auto-magic behavior, we love to see it ✨
  • -link2 β€” Don't auto-enable compression. You're on your own, bestie.

Okay that's the flag situation. All six, present and accounted for. No notes.


πŸ’€ DIAGNOSTICS πŸ’€

If you see this error:

sl%d: af%d not supported .

(and yes, there's a lil space before that period in the original, we're keeping it exactly as-is, no editing the source material here)

...then here's the tea: the interface was handed a message with addresses formatted in an unsuitable address family, and the packet was dropped. Gone. Dusted. It simply did not make it. 😭 That's the whole diagnostic. Nothing more to say, the packet's dead.


πŸ”₯ SEE ALSO πŸ”₯

Okay so you're gonna want to check out all of these, because they're all part of the ecosystem, bestie:

And also these iconic reference papers, because we stan a citation with lore behind it:

  • J. Romkey, A Nonstandard for Transmission of IP Datagrams over Serial Lines: SLIP, RFC, 1055, June 1988.
  • Van Jacobson, Compressing TCP/IP Headers for Low-Speed Serial Links, RFC, 1144, February 1990.

Like, actual RFCs from actual people. The history is real and we're honoring it 🫢


πŸ‘‘ HISTORY πŸ‘‘

The sl device appeared in NetBSD 1.0. That's when it entered the chat. Respect the timeline. ⭐


🌈 BUGS 🌈

Okay, here's the part where we get real about the limitations, because we don't lie to our besties πŸ’€

SLIP can only transmit IPv4 packets between preconfigured hosts on an asynchronous serial link. That's it. That's all it does. And it has no provision for:

  • address negotiation
  • carriage of additional protocols (e.g. XNS, AppleTalk, DECNET)

And also? It is not designed for synchronous serial links. Full stop.

This is literally why SLIP has been superseded by the Point-to-Point Protocol (PPP), which does all of those things and much, much more. So like... PPP is the main character now and SLIP is the beloved predecessor. That's the arc. No cap πŸ’…βœ¨


Real talk though: SLIP is a legacy icon, and we respect it for what it is β€” but if you're setting up something new, bestie, you already know what to reach for. πŸ™ˆ

And that's the page, babes! This manual page is brought to you by Debian, dated January 18, 2020, from the Kernel Interfaces Manual β€” slaying in section 4 of the manual since forever. Mwah! πŸ’–πŸŽ€πŸ¦‹πŸŒΈβœ¨

πŸ“¦ where this page comes from
  • nixpkgs unstable: netbsd-source 11.0
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms