RPLD(8)

πŸ“¦ version 1.8, in fedora 43, fedora 44

πŸ’– RPLD(8) β€” the system manager's manual, but make it cute πŸ’–

okay bestie, so this is rpld, section 8 of the system manager's manual. it's an RPL/RIPL remote boot server and honestly? it's giving vintage network magic. let's get into it 🫢


✨ NAME ✨

rpld β€” an RPL/RIPL remote boot server 🌸


✨ SYNOPSIS ✨

rpld [-f] [-C configfile] [-i iface] [-s sap] [-h]

that's it. that's the whole vibe check. πŸ‘‘


🚨 WARRANTY 🚨

okay so not me having to be the one to tell you this but:

rpld DOES NOT come with ANY WARRANTY, NOT even an IMPLIED WARRANTY. πŸ’€

like, fr fr. zero warranty. none. not even the implied kind. i'm just the messenger bestie 😭


✨ OPTIONS ✨

every single flag, no skips, we're thorough in this house πŸ’…

  • -f β€” this flag makes rpld run in the foreground instead of forking off and running as a daemon. main character energy, refuses to go in the background ✨
  • -C configfile β€” makes rpld read configfile instead of the default configuration file. you get to pick your own config, custom era πŸŽ€
  • -i iface β€” makes rpld bind to network interface iface instead of the default one. important caveat incoming: because of the limitations of the LLC 802.2 protocol, rpld can only bind to one interface. monogamous interface behavior, no cap πŸ¦‹
  • -s sap β€” changes the SAP number that rpld binds to. the IBM standard says this should be 0xf8 but most network cards seem to use 0xfc and some even use 0xf4. you can specify the sap as either a hex number with a leading 0x or a decimal one. and hmm, bestie, listen β€” beware of specifying a SAP number which is used for system control packets on a machine with native llc support. that's a real one, don't do that πŸ™ˆ
  • -h β€” makes rpld print a brief help message. the little "hi, here's the deal" moment πŸ’–

🌈 DESCRIPTION 🌈

okay so here's the whole plot. rpld will net-boot IBM style RPL boot ROMs. πŸ₯Ύ

communication between the client and the server is done in LLC-1 ui/C frames with the source and destination SAP both being 0xfc. iconic pairing, honestly.

here's the timeline of the whole boot-up situationship:

  1. on booting, the client transmits a FIND frame containing the client's MAC address, adapter type and frame length.
  2. the server replies with a FOUND frame containing the server's MAC address and a possibly smaller frame length.
  3. the client issues a SEND.FILE.REQUEST frame requesting the first block of the boot file.
  4. the server then issues a sequence of FILE.DATA.RESPONSE frames with increasing block numbers. these frames contain a load address, an execute address and a flag.
  5. if the client fails to receive a FILE.DATA.RESPONSE frame within a certain period, it sends another SEND.FILE.REQUEST frame requesting the block which follows the last block that was successfully received. retry era, we love resilience πŸ’ͺ
  6. on the last FILE.DATA.RESPONSE frame the server sets a special value of the flags which cause the client to transfer execution to the execute address specified in the frame. and that's the finale, curtains, slay 🎬

so how does the server actually start up? rpld starts by reading the configuration file in /etc/rpld.conf β€” see rpld.conf(5). after the configuration file has been read, it opens the system's default network interface and listens for RPL frames. πŸ‘‚βœ¨

and a lil detail you do NOT wanna miss: the server recalculates the length of all the files to be downloaded every time it receives a SEND.FILE.REQUEST frame. every single time. dedicated. obsessed. πŸ”₯


πŸ’€ BUGS πŸ’€

bestie. i need you to know that i am not the one who did this. the original text is literally, character-for-character, this:

Wheneconcurrentlyoservingpmultipleaclientsorplduwillochoose.theapacingy.
rpldineedshtonmeetdmoresnetworkladapters.ified in bits not bytes.

i am passing it along exactly as it was handed to me because i refuse to be the girl who drops a detail. someone's keyboard had a moment. we respect the artifact πŸ™ˆ


πŸ“ NOTES πŸ“

  • IBM is a trademark of IBM Corp. (legal girlies stay winning βš–οΈ)
  • and the makefile in the distribution for more information.

πŸ“‚ FILES πŸ“‚

  • /usr/sbin/rpld β€” the main character itself πŸ‘‘
  • /etc/rpld.conf β€” the config, the lore πŸ“œ
  • /rplboot β€” the boot files live here πŸ₯Ύ

πŸ‘€ SEE ALSO πŸ‘€

go read those too, iykyk πŸ’…


(c) 1999,2000 James McKenzie, and Christopher Lightfoot. All rights reserved.

absolute legends, we thank them for their service πŸŒΈπŸ‘‘


this little masterpiece is from the Linux distribution, version dated Jun 16, 2000, and it lives in section RPLD(8) of the manual. that's the whole page bestie, you ate it up, periodt πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from